性能优化:DocumentFragment

164 阅读1分钟

 DocumentFragment:文档碎片(高效批量更新多个节点)

//document:对应显示的页面,包含n个element 一旦更新document内部的某个元素界面更新

//documentFragment:内存中保存n个element的容器对象(不与界面关联),如果更新fargment中的某个elemnt

  • test1
  • test2
  • test3

const ul = document.getElemntById(“fragment_test”)

1. 创建fragment const fragment =document.createDocumentFragment()

2. 取出ul所有子节点取出保存到fragment

Let child

while(child=ul.firstChild){//一个节点只能有一个父亲

fragment.appendChild(child)}//先将child从ul中移除,添加为fragment子节点

3. 更新fragment中所有li的文本

Array.prototype.slice.call(fragment.childNodes).forEach(node=>{

if (node.nodeType===1){//元素节点

  • node.textContent=’atguigu}})

    4. 将fragment插入ul

    ul.appendChild(fragment)