Javascript, ES6, Golang, js, design, works, uuorks

2010年2月7日

操作dom记得使用createDocumentFragment



最近在做一个需求: 乱序排列一个列表,每次刷新都不同,怎么做呢?
1. 把元素取出,获得元素列表
2. 使用数组的sort函数,进行排序
3. 乱序函数很简单: function rand(){ return (Math.round(Math.random())-0.5); }
4. 返回的数组再插入页面里面使用appendchild,但是由于操作对象很多,速度不快,突然记得这本书里面写过文档碎片的事情,所以尝试了一下,果然速度快了些,分享一下。

所以大量的dom操作,一定记得使用createDocumentFragment ,一次性插入。 性能的提升是巨大的。

jquery的john resig同学说道:
A method that is largely ignored in modern web development can provide some serious (2-3x) performance improvements to your DOM manipulation. 


使用这个方法可以提升 (2-3x)倍的性能


他的测试如下:

BrowserNormal (ms)Fragment (ms)
Firefox 3.0.19047
Safari 3.1.215644
Opera 9.5120895
IE 6401140
IE 723061
IE 8b112040

没有评论:

发表评论