答案 0 :(得分:0)
我看到的最大问题是索引testIndex
功能,它在你的截图中在IE9中只需要超过8秒。以下复制的内容仅供参考。
function testIndex(div) {
for (var i = 0; i < count; i += 1) {
divs[i] = div.childNodes[count*2 - i*2 - 1];
}
}
请注意divs
是一个包含10000个索引的数组。
这个功能正在发生一些事情,我认为减速发生的原因是IE以外的浏览器优化了这些类型的DOM操作和计算缓存。我认为问题的一部分是这个函数与其他函数不同,它将它找到的内容的副本添加到divs
数组中。因此它会抓取DOM,将找到的对象复制到数组中。在抓取DOM时,IE从未如此快速。尝试以下操作,看看有什么区别。
function testIndex(div) {
var doublecount = (count*2) -1;
for (var i = 0; i < count; i += 1) {
div.childNodes[doublecount - i*2];
}
}
这可能会加快速度。