美文网首页
Html文档碎片--Document​Fragment

Html文档碎片--Document​Fragment

作者: ITgecko | 来源:发表于2019-04-17 10:26 被阅读0次
  • 直译过来就是文档碎片,表示一个没有父级文件的最小文档对象。它被作为一个轻量版的 Document。最大的区别是因为 DocumentFragment 不是真实DOM树的一部分,它的变化不会触发 DOM 树的(重绘) ,且不会导致性能等问题。
  • 它主要用来解决dom元素的插入问题,比如需要插入多个dom节点时,可以创建一个Document​Fragment,把节点依次添加到Document​Fragment上,添加完毕后再把Document​Fragment添加到页面document上,这样只会产生一次重绘。而如果直接把dom节点依次添加到页面document上就会引发多次重绘
  • 实际上现代浏览器对js引发重绘的操作也会进行节流控制的,比如短时间内触发了多次repaint的话,浏览器会将他们合并成一次repaint来处理,不过保险起见直接使用Document​Fragment即可。
  • 可以通过document.createDocumentFragment创建一个文档碎片。
var oFrag=document.createDocumentFragment();

for (var i=0; i<1000; i++) {
  var op=document.createElement("div");
  var oText=document.createTextNode(‘i’);
  op.appendChild(oText);
  oFrag.appendChild(op);
}
document.body.appendChild(oFrag);
  • html原生的<template>标签其实就是一个documentfragment,使用template标签时,实际插入到document上面的是,template的子节点,它本身不会被添加到dom上面。
  • react框架也有类似template的文档碎片概念:fragments,从而可以一个组件返回多个元素。
  • vue也使用了template标签,不过他不允许一个组件模板上有多个父元素节点(必须有一个唯一父节点)。

相关文章

网友评论

      本文标题:Html文档碎片--Document​Fragment

      本文链接:https://www.haomeiwen.com/subject/vmsvwqtx.html