小熊泡泡

          常用鏈接

          統(tǒng)計(jì)

          最新評論

          w3cDOM vs innerHTML (轉(zhuǎn)載)

          w3cdom1:創(chuàng)建所有需要的元件

          var x = document.createElement('table');
          var y = x.appendChild(document.createElement('tbody'));
          for (var i=0;i<50;i++)
          {
          var z = y.appendChild(document.createElement('tr'));
          for (var j=0;j<50;j++)
          {
          var a = z.appendChild(document.createElement('td'));
          a.appendChild(document.createTextNode('*'));
          }
          }
          document.getElementById('writeroot').appendChild(x);
          



          w3cdom2:只在第一次的時(shí)候創(chuàng)建,以后再需要就clone
          var x = document.createElement('table');
          var y = x.appendChild(document.createElement('tbody'));
          var tr = document.createElement('tr');
          var td = document.createElement('td');
          var ast = document.createTextNode('*');
          for (var i=0;i<50;i++)
          {
          var z = y.appendChild(tr.cloneNode(true));
          for (var j=0;j<50;j++)
          {
          var a = z.appendChild(td.cloneNode(true));
          a.appendChild(ast.cloneNode(true));
          }
          }
          document.getElementById('writeroot').appendChild(x);
          



          tableMethods: 使用W3C DOM的表格方法
          var x = document.createElement('table');
          var y = x.appendChild(document.createElement('tbody'));
          for (var i=0;i<50;i++)
          {
          var z = y.insertRow(0);
          for (var j=0;j<50;j++)
          {
          var a = z.insertCell(0).appendChild(document.createTextNode('*'));
          }
          }
          document.getElementById('writeroot').appendChild(x);
          



          innerHTML1: 把一串字符串連接起來
          var string = '<table><tbody>';
          for (var i=0;i<50;i++)
          {
          string += '<tr>';
          for (var j=0;j<50;j++)
          {
          string += '<td>*</td>';
          }
          string += '</tr>';
          }
          string += '</tbody></table>';
          document.getElementById('writeroot').innerHTML = string;
          



          innerHTML2: 把字符串push到數(shù)組里,再把數(shù)組串成一個(gè)字符串
          var string = new Array();
          string.push('<table><tbody>');
          for (var i=0;i<50;i++)
          {
          string.push('<tr>');
          for (var j=0;j<50;j++)
          {
          string.push('<td>*</td>');
          }
          string.push('</tr>');
          }
          string.push('</tbody></table>');
          var writestring = string.join('');
          document.getElementById('writeroot').innerHTML = writestring;
          



          從原文網(wǎng)站上的數(shù)據(jù)來看,最后一種方法是最快的,前兩種w3c的東東在IE/Win里不是一般的慢的。不過最快的方法在IE5/Win和IE5.x/Mac里不支持,需要一個(gè)quirksmode.js來讓它間接的支持。
          看了原文,除了了解這些方法的速度外,還了解了這幾種不同的方法,算是一點(diǎn)點(diǎn)收獲吧。


          PS:innerHTML不是標(biāo)準(zhǔn),不過好像目前的瀏覽器都支持的說。

          posted on 2006-07-08 22:32 小熊泡泡 閱讀(353) 評論(1)  編輯  收藏 所屬分類: Javascript

          評論

          # re: w3cDOM vs innerHTML (轉(zhuǎn)載) 2013-05-07 13:48 薩提亞

          謝謝啦,嗯嗯  回復(fù)  更多評論   

          主站蜘蛛池模板: 冷水江市| 汉中市| 中山市| 商洛市| 灵山县| 平潭县| 博白县| 中超| 二连浩特市| 宁安市| 济南市| 乳山市| 松阳县| 滨州市| 丹巴县| 林芝县| 麻栗坡县| 静海县| 阿克陶县| 宁武县| 元阳县| 延津县| 吴江市| 台北市| 垫江县| 中阳县| 永仁县| 青冈县| 开阳县| 巴林左旗| 三都| 全南县| 乃东县| 昔阳县| 夹江县| 永宁县| 天祝| 新河县| 新巴尔虎右旗| 昔阳县| 辽宁省|