美文网首页
DocumentFragment

DocumentFragment

作者: 叶不归宿 | 来源:发表于2019-12-10 17:08 被阅读0次

DocumentFragment,文档片段,不是真实 DOM 树的一部分,它的变化不会触发 DOM 树的重新渲染,且不会导致性能等问题。
其parentNode为null。
当把一个DocumentFragment节点插入文档树时,插入的不是DocumentFragment自身,
而是它的所有子孙节点。这使得DocumentFragment成了有用的占位符,暂时存放那些一次插入文档的节点。它还有利于实现文档的剪切、复制和粘贴操作。

性能比较

  • 1.document.crateElement()
  • 2.innerHTML
  • 3.documenFragment
// 1.document.crateElement()
        console.time("控制台计时器一");
        var container = document.getElementById('box');
        for (var i = 0; i < 1000; i++) {
            var temp = document.createElement('p');
            temp.innerHTML = 'i';
            container.appendChild(temp);
        }
        console.timeEnd("控制台计时器一");

        // 2.innerHTML
        console.time("控制台计时器一");
        var str = '';
        for(var i =0 ; i < 1000 ; i++){
          str += `<p>${i}</p>`;
        }
        
        container.innerHTML=str;
        console.timeEnd("控制台计时器一");

        // 3.documenFragment
        console.time("控制台计时器一");
        var oFragmeng = document.createDocumentFragment();
        for(var i=0;i<1000;i++){
          var p = document.createElement('p');
          p.innerText = i;
          oFragmeng.appendChild(p);
        }
        container.appendChild(oFragmeng);
        console.timeEnd("控制台计时器一")

输出

控制台计时器一: 6.0712890625ms
控制台计时器二: 2.075927734375ms
控制台计时器三: 1.890869140625ms

通过时间的对比我们可以看出来------createElement > innerHTML > documentFragment

多数情况下,DocumentFragment性能优于innerHTML,在移动端浏览器的个别情形下,innerHTML更优。

参考
https://www.cnblogs.com/mengff/p/7707184.html

相关文章

  • 了解DocumentFragment 给我们带来的性能优化

    什么是DocumentFragment? DocumentFragment 节点不属于文档树,继承的 parent...

  • 大数据量处理

    一、渲染 1、DocumentFragment 使用DocumentFragment保存新增的节点最后一次性插入。...

  • 大数据量处理

    一、渲染 1. DocumentFragment 使用DocumentFragment保存新增的节点最后一次性插入...

  • DocumentFragment

    DocumentFragment 节点不属于文档树,继承的 parentNode 属性总是 null。 不过它有一...

  • DocumentFragment

    DocumentFragment,文档片段,不是真实 DOM 树的一部分,它的变化不会触发 DOM 树的重新渲染,...

  • DocumentFragment

    利用js创建DOM节点消耗时间最少的方法 1.利用document.crateElement()进行创建 2.利用...

  • 【DOM】DocumentFragment类型

    1、所有的节点类型中,只有documentFragment在文档中没有对应的标记。2、DOM规定文档片段(docu...

  • 【DOM】DocumentFragment类型

    DocumentType类型在Web浏览器中不常用,只有Firefox、Safari和Opera支持它。Docum...

  • documentFragment和template

    今天读vue源码,读到了fragment。抱着一直以来的好奇,打开了mdn文档,只能说“又学习到了”。 A Doc...

  • 性能优化——DocumentFragment

    概念 DocumentFragment 接口表示文档的一部分(或一段)。更确切地说,它表示一个或多个邻接的Docu...

网友评论

      本文标题:DocumentFragment

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