<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在线播放| 最近免费中文字幕大全免费版视频 | 美女视频黄a视频全免费网站一区| 午夜免费不卡毛片完整版| 亚洲 暴爽 AV人人爽日日碰| 成人午夜免费福利| 久久无码av亚洲精品色午夜| 免费看一级做a爰片久久| 香蕉视频免费在线| 亚洲午夜久久久影院伊人| 国产免费一区二区三区不卡| 久久精品国产亚洲AV无码偷窥| 99re视频精品全部免费| 亚洲中文字幕无码av在线| 成人免费无码大片A毛片抽搐| 亚洲成av人片在www鸭子| 亚洲精品岛国片在线观看| 精品国产麻豆免费人成网站| 综合自拍亚洲综合图不卡区| 在线观看AV片永久免费| 色费女人18女人毛片免费视频| 亚洲无av在线中文字幕| 91福利免费视频| 久久精品国产亚洲AV未满十八| 狠狠亚洲狠狠欧洲2019| 67pao强力打造高清免费| 亚洲AV男人的天堂在线观看| 亚洲国产精品无码久久青草 | 精品女同一区二区三区免费站| 亚洲AV综合色区无码二区偷拍 | 久久综合日韩亚洲精品色| 最近免费中文字幕大全| av片在线观看永久免费| 亚洲国产综合AV在线观看| 亚洲午夜国产精品无码| 一级毛片免费不卡| 99久久亚洲综合精品成人网| 毛片免费视频播放| 一个人看的www免费高清| 亚洲剧情在线观看|