【发布时间】:2011-11-27 05:44:18
【问题描述】:
About a month ago,Firefox 8 实现了 insertAdjacentHTML 方法,该方法与 innerHTML 一起被添加到 IE4。根据this 基准,insertAdjacentHTML 通常比 innerHTML 快一个数量级。
我假设两者都调用同一个 HTML 解析器,那么为什么会有如此显着的差异呢? insertAdjacentHTML 是一个简单的方法调用,而 innerHTML 是一个 getter/setter,这可能会产生一些开销,但我永远不会想到这么多。
【问题讨论】:
-
请注意,使用
appendChild比两者都快得多。可能是因为那里不需要解析器。与appendChild相比,insertAdjacentHTML和innerHTML之间的差异似乎微不足道。但是,如果您确实需要解析 html 字符串,appendChild将无济于事。这是详细的 JSperf:jsperf.com/insertadjacenthtml-perf/28
标签: html performance browser innerhtml