<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我是FE,也是Fe

    前端來源于不斷的點滴積累。我一直在努力。

    統計

    留言簿(15)

    閱讀排行榜

    評論排行榜

    使用table自帶方法和DOM方法操作HTML table的區別

    table表格的操作有兩種方法,一種是標準的Table對象方法:

    方法 描述 IE F O W3C
    createCaption() 為表格創建一個 caption 元素。 4 1 9 Yes
    createTFoot() 在表格中創建一個空的 tFoot 元素。 4 1 9 Yes
    createTHead() 在表格中創建一個空的 tHead 元素。 4 1 9 Yes
    deleteCaption() 從表格刪除 caption 元素以及其內容。 4 1 9 Yes
    deleteRow() 從表格刪除一行。 4 1 9 Yes
    deleteTFoot() 從表格刪除 tFoot 元素及其內容。 4 1 9 Yes
    deleteTHead() 從表格刪除 tHead 元素及其內容。 4 1 9 Yes
    insertRow() 在表格中插入一個新行。 4 1 9 Yes
    詳見w3c school http://www.w3school.com.cn/htmldom/dom_obj_table.asp

    還有一種方法就是標準的DOM操作方法。只是將table看成一個普通的DOM元素來操作。兩種方法都寫一個代碼在表格中增加100*100個單元格。

    <table border="1" id="table1" bordercolor="#000" style="border-collapse:collapse;"></table>

    代碼一:使用Table對象
    //使用table自帶的方法操作
                var table1= document.getElementById("table1")
                
    for (var i=0;i<100 ; i++){
                    
    var row = table1.insertRow(-1);
                    
    for (var j=0;j<100 ; j++){
                        
    var cell = row.insertCell(-1);
                        cell.innerHTML
    =(new Date()).getTime();
                    }
                }

    代碼二:使用DOM操作:
    var f = document.createDocumentFragment();
                
    for (var i=0;i<100 ; i++){
                    
    var tr = document.createElement("tr");
                    
    for (var j=0;j<100 ; j++){
                        
    var td = document.createElement("td");
                        
    var text = document.createTextNode((new Date()).getTime());
                        td.appendChild(text);
                        tr.appendChild(td);
                    }
                    f.appendChild(tr);
                }
                document.getElementById(
    "tbody1").appendChild(f);

    我先測試了一下兩種方法的運行性能。我力求用性能最好的DOM操作方法去操作table。粗略的測試出的數據

    Internet Explorer 8 FireFox 3.6.13 Chrome 8 Safari 5 Opera 10
    使用DOM操作 1204ms 380ms 62ms 170ms 174ms
    使用table操作 14719ms 2404ms 423ms 199ms 357ms

    使用DOM的操作性能顯然要比Table對象操作要快。我之所以去測試是擔心是否是原生的Table方法操作起來性能更好。從上面的數據明顯可以說明。Table對象的方法其實也是DOM操作。影響性能的還是取決于頁面重繪的次數。顯然使用insertRow和inertCell也會導致頁面重繪。100*100次重繪。而使用DOM Fragment。頁面只重繪了1次。

    測試不同瀏覽器的耗時是想看看各種瀏覽器對Table對象的方法支持情況,還好,都支持。當然還是要惡心一下IE,誰叫他老是最慢。

    從代碼上來看使用Table標準方法的代碼比DOM操作的代碼要簡潔直觀一些。

    總的來說,對于少量的表格操作,可以使用Table對象自帶的方法來操作,對于大量的Table操作還是要使用最優的DOM操作。至于什么是最優的DOM操作。強烈推薦大家去看看High Performance JavaScript這本書"

    posted on 2011-01-04 16:37 衡鋒 閱讀(1033) 評論(0)  編輯  收藏 所屬分類: Web開發

    主站蜘蛛池模板: 日产国产精品亚洲系列| 亚洲AV无码成人专区片在线观看| 一级成人a做片免费| 亚洲国产另类久久久精品小说| 久艹视频在线免费观看| 亚洲AV无码一区二区三区牛牛| 亚洲片一区二区三区| 51在线视频免费观看视频| 在线观看亚洲电影| 亚洲色四在线视频观看| 啊v在线免费观看| 性色午夜视频免费男人的天堂| 亚洲av日韩av永久在线观看| 久久精品国产亚洲av成人| 免费欧洲美女牲交视频| 18级成人毛片免费观看| v片免费在线观看| 午夜在线a亚洲v天堂网2019| 亚洲AV永久青草无码精品| 日韩在线免费播放| 在线观看永久免费| 久久精品免费大片国产大片| 亚洲天然素人无码专区| 亚洲精品自产拍在线观看动漫| 国产成人免费A在线视频| 永久看日本大片免费35分钟| 一区在线免费观看| 欧洲亚洲国产精华液| 亚洲国产美女视频| 亚洲AV无码码潮喷在线观看| 亚洲国产一成久久精品国产成人综合 | 亚洲国产国产综合一区首页| 免费一级毛片正在播放| 我想看一级毛片免费的| 91视频免费网址| 另类免费视频一区二区在线观看| 黄页网站在线观看免费| 亚洲日本国产综合高清| 亚洲高清中文字幕综合网| 亚洲av永久无码精品网站| 亚洲线精品一区二区三区 |