js 性能优化tips-document.createDocumentFragment
2014-08-01 14:59
453 查看
js 性能优化的tips Document.CreateDocumentFragment:
在我们使用循环插入html节点的时候,有很多做法:
大的较好的做法,如使用temp模板拼接:
但是也有很多小的应用场景,使用temp模板不方便,我们就会简单的for循环直接插入:
较常用的方法:
定义一个空数组:var str = [];
str.push()加入元素。
最后在循环结束后,使用append(str.join(""));
添加元素
因为,如果每次循环都做一次append操作,相当于每次都刷新html结构,那么这个带来的额外开销是完全没必要的。
一个较差的实现方式的demo:
这个时候,我们就可以使用到文档随便的这个节点
.createDocumentFragment 来解决这个问题:
这样其实就相当于页面的append只进行了一次,性能提升是可观的!
~~~~~~~~~~~~~
~~~~~~~~~~~~~
在我们使用循环插入html节点的时候,有很多做法:
大的较好的做法,如使用temp模板拼接:
但是也有很多小的应用场景,使用temp模板不方便,我们就会简单的for循环直接插入:
较常用的方法:
定义一个空数组:var str = [];
str.push()加入元素。
最后在循环结束后,使用append(str.join(""));
添加元素
因为,如果每次循环都做一次append操作,相当于每次都刷新html结构,那么这个带来的额外开销是完全没必要的。
一个较差的实现方式的demo:
for(var i=0;i<5;i++) { var op = document.createElement("span"); var oText = document.createTextNode(i); op.appendChild(oText); document.body.appendChild(op); }
这个时候,我们就可以使用到文档随便的这个节点
.createDocumentFragment 来解决这个问题:
//先创建文档碎片 var oFragmeng = document.createDocumentFragment(); for(var i=0;i<10000;i++) { var op = document.createElement("span"); var oText = document.createTextNode(i); op.appendChild(oText); //先附加在文档碎片中 oFragmeng.appendChild(op); } //最后一次性添加到document中 document.body.appendChild(oFragmeng);
这样其实就相当于页面的append只进行了一次,性能提升是可观的!
~~~~~~~~~~~~~
~~~~~~~~~~~~~
相关文章推荐
- JS性能优化之创建文档碎片(document.createDocumentFragment)
- JS性能优化之文档碎片-document.createDocumentFragment
- JS性能优化之创建文档碎片(document.createDocumentFragment)
- JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
- JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
- [JavaScript]使用document.createDocumentFragment优化性能
- JavaScript性能优化--创建文档碎片createDocumentFragment(转)
- 了解DocumentFragment 给我们带来的性能优化
- document.createDocumentFragment()与js效率
- 使用createDocumentFragment的渲染数据(节省性能)
- (转)document.createDocumentFragment()与js效率
- 了解DocumentFragment 给我们带来的性能优化
- WEB(四)_js的createDocumentFragment()方法
- 使用createDocumentFragment()方法---减少回流,提高性能
- Js中的appenChild,insertBefore--createDocumentFragment
- js创建dom节点之最容易被忽略的createDocumentFragment()方法
- Web前端性能优化——DocumentFragment或innerHTML取代复杂的元素注入
- Javascript createDocumentFragment提搞創建DOM性能
- JSConf 2010 (三):Raphaël、优化前端性能
- js 中 document.createEvent的用法-转载