CSS和jQuery选择器速度

前端之家收集整理的这篇文章主要介绍了CSS和jQuery选择器速度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在jQuery中,每当遇到这样的事情:
$("div#MyDiv").....

我一般对开发者说:“不要把div放在#MyDiv的前面,ID选择器是最快的.”即

$("#MyDiv")....

这是因为后者将直接钩入document.getElementById,而不必扫描所有< div>的DOM.元素第一.

我的问题是,同样的规则适用于CSS选择器吗?即而不是:

div#MyDiv
{
}

简单来说是更快吗?

#MyDiv
{
}

(我意识到,CSS选择器是非常快的反正,所以在现实中也不会有显着差异.)

非常感谢

编辑

任何链接或引用可能对本讨论的目的有用.谢谢 :-)

解决方法

我会说,它是不太可能使任何现实世界的区别.在理论上,是的,需要少一个检查(因为div#foo真的需要一个div来匹配选择器,根据 the spec).但是在现实世界的浏览器应用程序中,它的几率有何不同呢?接近零.

也就是说,当我在HTML应用程序中看到像div#foo这样的东西时,我总是很沮丧. HTML只有一个ID类型属性(id),因此不需要进一步的资格.您使CSS选择器引擎(浏览器或jQuery的)更难以弄清楚您的意思,使选择器变得脆弱(例如,如果div成为页脚)等等,当然您也可以自己打开到一个stoopid选择器实现,无法识别它可以看看ID的东西,然后检查,看看它是否是一个div,所以去查看所有的div. (这样的实现是否存在?可能,你永远不会知道.)除了一些边缘案例,总是让我认为某人不太了解他们在做什么.

所以对我来说,速度不是主要的论据.无意义是.

猜你在找的CSS相关文章