【发布时间】:2018-12-24 18:20:52
【问题描述】:
我的一段前端 JS 代码依赖于数千个 DOM 节点的实时 HTMLCollection。由于它是实时的,它会随着 DOM 的更新而自动更新。
这与我每次修改 DOM 时都重新运行document.getElementsByClassName 调用相同,还是在后台进行了性能优化?
【问题讨论】:
-
视情况而定。 Murphy 说,如果你真的需要优化,那么它在部署的环境中将不可用。如果您不需要它,那么它将可用。
-
@skyboyer 那篇文章有点误导。 创建一个活动的 NodeList 非常快,因为查找 DOM 元素的开销会延迟到元素被访问。
-
@Barmar 文章同样指出:“浏览器可以更快地创建和返回实时 NodeList 对象,因为它们不必预先拥有所有信息,而静态 NodeList 需要拥有所有从一开始他们的数据。“
-
@skyboyer 是的,它们可以创建得更快,但第一次访问会慢一些。没有免费的午餐。
标签: javascript performance htmlcollection