【问题标题】:Is retrieving DOM element by id high cost?通过 id 检索 DOM 元素的成本高吗?
【发布时间】:2012-01-21 07:57:18
【问题描述】:

据说DOM遍历成本高,尽量避免。 但是,我认为通过 id 检索 DOM 元素的成本必须非常低,因为大多数浏览器可能都有一个表格,它在内部将元素与 id 关联起来。 所以几乎总是,我们可以忽略这个操作的性能成本。 这是错的吗?

谢谢。

【问题讨论】:

  • 能否建议您创建一个测试用例,然后访问JS Perf 自己测试?

标签: javascript


【解决方案1】:

Chrome 和 Firefox 似乎为 ID 创建了一个映射,但至少在 ie8 看来,Explorer 似乎仍然存在性能问题。 Mike Blandford 运行了一些基准测试,至少表明 IE 没有使用数组映射,因此它的性能受到了严重影响:

JavaScript: document.getElementById slow performance?

引用:

以下是结果(对于包含 10,000 个元素的页面):

IE8 getElementById:0.4844 毫秒 IE8 id 数组查找:0.0062 毫秒

Chrome getElementById:0.0039 毫秒 Chrome id 数组查找:0.0006 毫秒

他接着说 FF 与 chrome 非常相似。当然,在大多数情况下,0.5ms 几乎不用担心,但对于大型树和频繁调用来说,它可能会成为一个问题(有人指出,您可以使用 JS 为基于 ID 的元素创建缓存系统,这将显着改善在某些浏览器中的性能)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多