【问题标题】:Which is the fastest way to search elements in the dom? [closed]在 dom 中搜索元素的最快方法是什么? [关闭]
【发布时间】:2014-03-17 17:50:00
【问题描述】:

性能对我的应用非常重要,所以我想知道获取 DOM 元素以更改其文本的最快方法是什么?

jQuery 比document.getElementByClassdocument.getElementById 快吗?或者是否有任何其他工具或框架可以更快地完成这项工作?

【问题讨论】:

  • jQuery 使用 getElemntById 和其他原生方法。 jQuery 永远不会更快,将苹果与苹果进行比较。
  • 没有比原生 javascript 更快的框架。如果您想检查任何特定情况,我建议您使用jsperf
  • 话虽如此.. jQuery 的重点还在于让事物跨浏览器兼容。因此,如果这对您来说是一个问题,那么当您编写“本机”代码来解决所有这些问题时,您最终不会得到比 jQuery 或类似代码少得多的结果。

标签: javascript jquery performance dom


【解决方案1】:

getElementById 是最快的。但是,如果您计划多次重用找到的对象 - 将其缓存在一个变量中,这样您就不必再次查找它。除了查找方法之外,还有更多要加快速度的方法。

【讨论】:

    【解决方案2】:

    访问一个元素的最快方法是使用一个保持对它的引用的变量...

    在第二个位置,我会提到document.getElementById,浏览器应该在幕后使用字典/哈希映射之类的东西,因此对具有给定 ID 的元素的访问很复杂O(1)

    肯定 jQuery 的 Sizzle 会比 Vanilla JS 慢一点。

    【讨论】:

    • document.querySelectorAll 和 Sizzle 不完全可比。 QSA 有一个怪癖,就是寻找你意想不到的后代,而 jQuery/sizzle “处理它”。而且 Sizzle 支持许多 QSA 不支持的选择器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 2021-09-07
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    相关资源
    最近更新 更多