dom操纵之文档碎片

文档碎片

在一样平常的工作中,避免不了我们要想一个元素中插进去大批的动态元素,比方:

<ul id="box">

</ul>

在页面中有一个ul,我们跟着页面的某一个事宜的触发,需要向#box中插进去大批的li,一般的写法为:

var oUl = document.querySelectorAll('#box')[0];
        for(var i=0;i<1000;i++){
            var oLi = document.createElement('li');
            var t = document.createTextNode(i+'');
            oLi.appendChild(t);
            oUl.appendChild(oLi);
}

如许是能够完成的,然则如许机能就无从提起了,由于每次oUl都从新绘制了一次,由于每次oUl都调用了appendChild要领,所以,就要借助一个叫文档碎片的东西,建立一个文档碎片:

var frag = document.createDocumentFragment();

然后再经由过程oUl到场文档碎片:

oUl.appendChild(frag);

如许也就触发了一次oUl的从新绘制,机能上会大大提高,完全代码:

        var frag = document.createDocumentFragment(),
            oLi = null,
            t = '',
            oUl = document.querySelectorAll('#box')[0];
        for(var i = 0;i < 1000;i++){
            oLi = document.createElement('li');
            t = document.createTextNode(i + '');
            oLi.appendChild(t);
            frag.appendChild(oLi);
        }
        console.log(frag);
        oUl.appendChild(frag);

固然你也能够运用字符串拼接的体式格局,我在这里就不在复述了!

    原文作者:zasqw2222
    原文地址: https://segmentfault.com/a/1190000002437610
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞