使用文档碎片在某些情况下可以提高页面效率。
javascript操作dom是一个很耗性能的过程,在某些情况下,不得不进行dom循环操作,我们每次对dom的操作都会触发"重排",这严重影响到能耗,一般通常采取的做法是尽可能的减少dom操作来减少"重排"。
面对循环操作dom的过程,我们选择使用文档碎片(creatDocumentFragment),将需要添加到dom中的内容一次性添加到文档碎片中,然后将文档碎片添加到dom树,这样就可以有效的减少操作dom的次数。
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>文档碎片</title> <meta name="Keywords" content=""> <meta name="author" content="@my_programmer"> </head> <body> <script> var temp = document.createDocumentFragment();//文档碎片(当把文档碎片付给某节点时,只是把文档碎片中的子节点付给了某节点,它本身并没有插入到这个节点中) for (var i=0; i<100; i++) { var test =document.createElement('div');//创建一个节点 test.innerHTML = 'aaa' + i;//给节点添加内容 temp.appendChild(test);//把创建的节点插入到temp文档中 } document.body.appendChild(temp);//把temp文档插入到body末尾 </script> </body> </html>