美文网首页Web前端之路
在向dom插入多个元素时,利用文档碎片,提高性能

在向dom插入多个元素时,利用文档碎片,提高性能

作者: 臭臭臭魁 | 来源:发表于2016-02-26 11:59 被阅读435次

    javascript操作dom是一个很耗性能的过程,在某些情况下,不得不进行dom循环操作,我们每次对dom的操作都会触发"重排",这严重影响到能耗,一般通常采取的做法是尽可能的减少dom操作来减少"重排"。
      面对循环操作dom的过程,我们选择使用文档碎片(creatDocumentFragment),将需要添加到dom中的内容一次性添加到文档碎片中,然后将文档碎片添加到dom树,这样就可以有效的减少操作dom的次数。

    var frag = document.createDocumentFragment();
    var el = document.createElement("div");
    el.appendChild(document.createTextNode("hello wrold"));
    for (var i = 10; i>0;i--){
       frag.appendChild(el.cloneNode(true))//先将生成的dom全部插入frag,这个过程并不会触发重排与重绘
       }
    document.body.appendChild(frag);//将生成的frag插入到body中,将将十次重排重绘的过程压缩为一次,
    

    此方法有利于提高浏览器的渲染性能,本来浏览器重排重绘十次,利用文档碎片可以只触发一次重排重绘过程就将十个元素插入到body中,,,

    相关文章

      网友评论

        本文标题:在向dom插入多个元素时,利用文档碎片,提高性能

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