<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免费看| 二区久久国产乱子伦免费精品| 久久aa毛片免费播放嗯啊| 亚洲无线一二三四区手机| 国产99久久亚洲综合精品| 日韩a在线观看免费观看| 亚洲av永久无码精品网址| 日韩一级视频免费观看| 亚洲av中文无码乱人伦在线观看| 女人被男人躁的女爽免费视频 | 亚洲国产aⅴ成人精品无吗| 国产美女在线精品免费观看| 99999久久久久久亚洲| 一二三四在线观看免费高清中文在线观看 | 亚洲精品无码你懂的| 四虎永久在线精品免费网址| 亚洲日韩一中文字暮| 韩国二级毛片免费播放| 国产产在线精品亚洲AAVV| 久久久久国产成人精品亚洲午夜 | 另类免费视频一区二区在线观看 | 亚洲动漫精品无码av天堂| 最近免费中文字幕高清大全| 亚洲偷偷自拍高清| 全免费a级毛片免费看不卡 | 今天免费中文字幕视频| 亚洲黄色片免费看| 成人免费无码视频在线网站| 黄网站色视频免费看无下截 | 免费在线观影网站| 久久精品国产亚洲av麻豆色欲| 国拍在线精品视频免费观看| 在线观看亚洲专区| 久久亚洲国产欧洲精品一| 亚洲免费一级视频| 国产亚洲福利一区二区免费看| 亚洲啪啪综合AV一区| 18禁成年无码免费网站无遮挡| 新最免费影视大全在线播放| 亚洲视频在线观看免费| 精品国产免费观看久久久|