$(“body”) 使用 Sizzle 引擎吗?
我知道 $("#id")
更快,因为它映射到本机 JavaScript 方法。 $("body")
也是如此吗?
I understand that $("#id")
is faster because it maps to a native javascript method. Is the same true of $("body")
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,它不使用 Sizzle,有一个特殊的
$("body")
快捷方式,您可以在此处查看代码:请注意,这与
$( 不太相同 document.body)
,因为$("body")
的结果上下文是document
,其中$(document.body)
code> (像任何其他 DOM 节点一样)有自己的上下文。No it does not use Sizzle, there's a special shortcut for
$("body")
in place, you can see the code here:Note that this isn't quite the same as
$(document.body)
, as the resulting context of$("body")
isdocument
, where as$(document.body)
(like any other DOM node) has a context of itself.这直接来自源(代码):
对于除 body 之外的标签
如果您深入研究一下,就会发现如果没有给出上下文,它们将使用
getElementsByTagName
。与使用 Sizzle 引擎相比,这将大大提高性能。This is straight from the source (code):
For tags other than body
If you dig a little deeper it turns out they will use
getElementsByTagName
if no context is given. This will give a nice boost to performance over using the Sizzle engine.