【问题标题】:when selecting elements, why using id, class and tag like ".my-class", "button" is faster than those like "[name='my-name']"选择元素时,为什么使用像“.my-class”、“button”这样的id、class和标签比像“[name='my-name']”这样的更快
【发布时间】:2014-03-12 11:15:30
【问题描述】:

在选择元素时,例如<a class='my-class' name='my-name'>sth</a>,为什么使用.my-classa 比使用[name='my-name'] 更快。在我看来,选择器使用深度优先搜索来遍历dom树(如果我理解错了请纠正我),为什么前者更快?

【问题讨论】:

  • 在现代浏览器中,它可能没有太大的区别。
  • @Pointy 可能与 css psecifity 相关?
  • true 但假设您不想选择所有 a 元素。那你会怎么做?
  • @RoyiNamir 很好,这是一个很好的观点,但我认为属性引用与类引用的特殊性相同。
  • 如果所有a元素都具有相同的属性<a class='my-class' name='my-name'>sth</a>,那么理论上使用这3种方式应该是相同的性能,对吧?

标签: javascript performance browser jquery-selectors css-selectors


【解决方案1】:

似乎idclass 被添加到索引中,这样可以加快搜索速度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 2011-01-29
    • 1970-01-01
    相关资源
    最近更新 更多