zoukankan      html  css  js  c++  java
  • innerHTML对比DOM方法

    innerHTML:

     1 function tableInnerHTML() {
     2     var i, h = ['<table border="1" width="100%">'];
     3     h.push('<thead>');
     4     h.push('<tr><th>id<\/th><th>yes?<\/th><th>name<\/th><th>url<\/th><th>action<\/th><\/tr>');
     5     h.push('<\/thead>');
     6     h.push('<tbody>');
     7     for (i = 1; i <= 1000; i++) {
     8         h.push('<tr><td>');
     9         h.push(i);
    10         h.push('<\/td><td>');
    11         h.push('And the answer is... ' + (i % 2 ? 'yes' : 'no'));
    12         h.push('<\/td><td>');
    13         h.push('my name is #' + i);
    14         h.push('<\/td><td>');
    15         h.push('<a href="http://example.org/' + i + '.html">http://example.org/' + i + '.html<\/a>');
    16         h.push('<\/td><td>');
    17         h.push('<ul>');
    18         h.push('<li><a href="edit.php?id=' + i + '">edit<\/a><\/li>');
    19         h.push('<li><a href="delete.php?id="' + i + '-id001">delete<\/a><\/li>');
    20         h.push('<\/ul>');
    21         h.push('<\/td>');
    22         h.push('<\/tr>');
    23     }
    24     h.push('<\/tbody>');
    25     h.push('<\/table>');
    26 
    27     document.getElementById('here').innerHTML = h.join('');
    28 }

    DOM方法:

     1 function tableDOM() {
     2     var i, table, thead, tbody, tr, th, td, a, ul, li;
     3     tbody = document.createElement('tbody');
     4     for (i = 1; i <= 1000; i++) {
     5         tr = document.createElement('tr');
     6         td = document.createElement('td');
     7         td.appendChild(document.createTextNode((i % 2) ? 'yes' : 'no'));
     8         tr.appendChild(td);
     9         td = document.createElement('td');
    10         td.appendChild(document.createTextNode(i));
    11         tr.appendChild(td);
    12         td = document.createElement('td');
    13         td.appendChild(document.createTextNode('my name is #' + i));
    14         tr.appendChild(td);
    15 
    16         a = document.createElement('a');
    17         a.setAttribute('href', 'http://example.org/' + i + '.html');
    18         a.appendChild(document.createTextNode('http://example.org/' + i + '.html'));
    19         td = document.createElement('td');
    20         td.appendChild(a);
    21         tr.appendChild(td);
    22 
    23         ul = document.createElement('ul');
    24         a = document.createElement('a');
    25         a.setAttribute('href', 'edit.php?id=' + i);
    26         a.appendChild(document.createTextNode('edit'));
    27         li = document.createElement('li');
    28         li.appendChild(a);
    29         ul.appendChild(li);
    30         a = document.createElement('a');
    31         a.setAttribute('href', 'delete.php?id=' + i);
    32         a.appendChild(document.createTextNode('delete'));
    33         li = document.createElement('li');
    34         li.appendChild(a);
    35         ul.appendChild(li);
    36         td = document.createElement('td');
    37         td.appendChild(ul);
    38         tr.appendChild(td);
    39 
    40         tbody.appendChild(tr);
    41     }
    42 
    43     tr = document.createElement('tr');
    44     th = document.createElement('th');
    45     th.appendChild(document.createTextNode('yes?'));
    46     tr.appendChild(th);
    47     th = document.createElement('th');
    48     th.appendChild(document.createTextNode('id'));
    49     tr.appendChild(th);
    50     th = document.createElement('th');
    51     th.appendChild(document.createTextNode('name'));
    52     tr.appendChild(th);
    53     th = document.createElement('th');
    54     th.appendChild(document.createTextNode('url'));
    55     tr.appendChild(th);
    56     th = document.createElement('th');
    57     th.appendChild(document.createTextNode('action'));
    58     tr.appendChild(th);
    59 
    60     thead = document.createElement('thead');
    61     thead.appendChild(tr);
    62     table = document.createElement('table');
    63     table.setAttribute('border', 1);
    64     table.setAttribute('width', '100%');
    65     table.appendChild(thead);
    66     table.appendChild(tbody);
    67 
    68     document.getElementById('here').appendChild(table);
    69 }

    速度明显innerHTML比DOM方法要快很多(包括撸代码的速度),但是在webkit内核的浏览器中DOM方法比innerHTML要快。

  • 相关阅读:
    BZOJ3105: [cqoi2013]新Nim游戏 博弈论+线性基
    BZOJ3759: Hungergame 博弈论+线性基
    NOI模拟赛Day2
    期望dp BZOJ3450+BZOJ4318
    NOI模拟赛 Day1
    NOI模拟 热身赛T1
    【BZOJ4260】 Codechef REBXOR 可持久化Trie
    【BZOJ3673】&&【BZOJ3674】: 可持久化并查集 by zky 可持久化线段树
    【BZOJ3207】花神的嘲讽计划I 可持久化线段树/莫队
    【bzoj3527】[Zjoi2014]力 FFT
  • 原文地址:https://www.cnblogs.com/qzsonline/p/2556279.html
Copyright © 2011-2022 走看看