当前位置:  开发笔记 > 编程语言 > 正文

为什么在Firefox中innerHTML =""慢

如何解决《为什么在Firefox中innerHTML=""慢》经验,为你挑选了1个好方法。

我正在测试不同方法的速度,以动态地将HTML元素添加到DOM.我在这里建立了一个测试人员(代码是工作版,非常邋)).对于不同的浏览器,结果是(非常)不同的,Chrome获得速度的所有点,Opera是第二个 - 但这不是问题.

在Firefox中,我检测到清除div的问题(来自它的childNodes).当添加了大约50.000个div元素时,使用just来清除它需要很长时间

[div].innerHTML = "";

这里发生了什么?firefox是否为此实现了一些内在的垃圾收集方法?



1> Martijn Laar..:

虽然我不确定innerHTML =""但你遗漏了一个可能使用DocumentFragments插入DOM的快速方法:正如John Resig所示.

正如ÓlafurWaage已经提到的那样,尽管innerHTML在很多情况下都比较快,因为它不是任何W3C标准的一部分,如果它们存在的话,怪癖的可能性要大得多.更不用说innerHTML不是现代浏览器中的事实标准.

这篇博文似乎表明,当使用innerHTML删除元素时,Firefox会花费大量时间进行清理.

在某些浏览器中(最值得注意的是,Firefox),虽然innerHTML通常比DOM方法快得多,但它花费了不成比例的时间来清除现有元素而不是创建新元素.知道了这一点,我们可以通过使用标准DOM方法删除父元素并使用innerHTML创建新元素来组合销毁元素的速度.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有