【发布时间】:2011-11-07 21:26:39
【问题描述】:
我最近阅读了有关不同选择器引擎效率的更多信息。我知道 jQuery 使用 Sizzle 引擎,this blog post 关于一些 jQuery 的东西提到 Sizzle 引擎会将你的选择器分解成一个数组,然后从左到右解析。
然后,它从右到左开始使用正则表达式破译每个项目。这也意味着选择器的最右边部分应该尽可能具体——例如,一个 id 或标签名称。
我的问题是使用 仅 指定的 ID 或标签名称运行选择器是否更有效:
var div = $('#someId');
//OR
var div = $('div#someId');
由于我在 div#someId 表单中编写 CSS,我倾向于以相同的方式执行我的选择器,我是否会导致 Sizzle 执行额外的工作(假设 QuerySelectorAll 不可用)?
【问题讨论】:
-
好问题!我正在考虑自己问一个类似的问题。
-
对于性能问题,最好的答案通常是自己尝试。 jsperf.com 可以帮助您对 javascript sn-ps 进行基准测试。
标签: javascript jquery performance sizzle