据说DOM遍历成本很高,所以您应该尽可能地避免它。但是,我认为,通过id检索DOM元素的成本必须非常低,因为大多数浏览器可能有一个表,该表在内部将元素与id关联。因此,我们几乎总是可以忽略此操作的性能成本。这样做不对吗?
谢谢。
发布于 2012-01-20 19:53:43
Chrome和Firefox似乎为ID创建了一个映射,但至少在ie8中,浏览器似乎仍然存在性能问题。Mike运行了一些基准测试,这至少意味着IE没有使用数组映射,因此它的性能严重受损:
JavaScript: document.getElementById slow performance?
引用如下:
如下所示(对于一个包含10,000个元素的页面):
IE8 getElementById: 0.4844 ms IE8 id数组查找: 0.0062 ms
Chrome getElementById: 0.0039 ms Chrome id数组查找: 0.0006 ms
他接着说FF和铬差不多。当然,在大多数情况下,.5ms几乎不需要担心,但是对于大型树和频繁调用来说,这可能会成为一个问题(一些人已经指出,您可以通过JS为基于ID的元素创建缓存系统,这将大大提高某些浏览器的性能)。
https://stackoverflow.com/questions/8947001
复制相似问题