【发布时间】:2011-11-21 15:38:35
【问题描述】:
我刚刚创建了一个 jquery 选择器性能测试页面。 http://guhelouis.github.com/jquery_performance/
有 10000 个 div,类名从 .div-cl-1 到 .div-cl-10000。我正在尝试使用 2 个不同的选择器获取 .div-cl-9999:
- $('div.div-cl-9999)
- $('.div-cl-9999')
您可能会猜到,第一个会比第二个快。但是,请在http://guhelouis.github.com/jquery_performance/ 中查看结果(按运行它按钮,抱歉,它有点慢),第一个结果总是第一个比第二个慢。
如果你在运行中颠倒顺序,意味着:
- $('.div-cl-9999')
- $('div.div-cl-9999)
结果又恢复正常了。
它是新的 jquery 选择器引擎中的某种“索引”吗?
PS:这些奇怪的结果仅在使用 jquery 1.3+ 时出现(JQuery 开始使用 Sizzle 的时间)。
【问题讨论】:
-
是什么让你认为第一个选择器比第二个更快?第二个将在支持它的浏览器上使用
getElementsByClassName()(相当快)。 -
@FrédéricHamidi:你是对的! (Y)...谢谢!
标签: javascript jquery performance selector