createDocumentFragment

频繁一次性追加新节点到页面中,可以先创建一个DocumentFragment对象,然后将要追加的DOM对象都append到此对象中,最后添加到DOM结构中。此种方法效率比一个个节点追加到DOM结构中效率来的高。以下是个测试示例

 1 <html>
 2     <head>
 3         
 4         <script type="text/javascript">
 5             function oraAdd(){
 6                     var d  = new Date();
 8                     for (var i = 0; i < 10000; i++) {
 9                         var para = document.createElement("p");
10                         para.appendChild(document.createTextNode("Paragraph " + i));
11                         document.body.appendChild(para)
12                     }
13                     console.log(new Date()-d);
14                 
15             }
16             function fragmentAdd(){
17                     var d  = new Date();
18                     var fragment = document.createDocumentFragment(); //创建createDocumentFragment对象
20                     for (var i = 0; i < 10000; i++) {
21                         var para = document.createElement("p");
22                         para.appendChild(document.createTextNode("Paragraph " + i));

23                         fragment.appendChild(para);
24                     }
25                     
26                     document.body.appendChild(fragment);
27                     console.log(new Date()-d);
28             }
29             
30         </script>
31         
32     </head>
33     <body>
34         
35         <input type="button" value="增加1" onclick="oraAdd()"></input>
36         <input type="button" value="增加2" onclick="fragmentAdd()"></input>
37     </body>
38 </html>

 

 

posted on 2012-02-19 14:06  刘轶屹  阅读(374)  评论(0)    收藏  举报

导航