最近在做一个需求: 乱序排列一个列表,每次刷新都不同,怎么做呢?
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)倍的性能
他的测试如下:
Browser | Normal (ms) | Fragment (ms) |
---|---|---|
Firefox 3.0.1 | 90 | 47 |
Safari 3.1.2 | 156 | 44 |
Opera 9.51 | 208 | 95 |
IE 6 | 401 | 140 |
IE 7 | 230 | 61 |
IE 8b1 | 120 | 40 |
没有评论:
发表评论