3

据我所知,SizzlequerySelector/querySelectorAll是 CSS 选择器。所以...加载 Sizzle 和做有什么区别:

Sizzle("my CSS query")

document.querySelectorAll("my CSS query")

另外,我知道 Sizzle 返回一个元素数组,而 querySelectorAll 返回一个 NodeList(在大多数浏览器中)。我也知道您需要加载 Sizzle 并且只能document.querySelector用于一个元素。

那么在性能上还有其他区别吗?

编辑:我的问题只是关于 Sizzle 选择器引擎(和querySelectorAll)。请不要涉及 jQuery。

4

2 回答 2

3

SizzlequerySelectorAll是在不存在的时候创建的。在querySelectorAll引入querySelectorAll.

SizzlequerySelectorAll如果选择器不受支持或知道对于给定的浏览器版本存在错误,则它自己会尝试直接使用并且只会使用它自己的 DOM 遍历。因此,对于现代浏览器,性能应该不会有明显差异,因为querySelectorAll在这两种情况下都会使用。

相比querySelectorAll,Sizzle允许定义自定义伪选择器,但缺点是您无法从querySelectorAll现在提供的性能中受益。

因此,如今,如果您不需要自定义伪选择器,则不再需要Sizzle。只有当您需要针对已知有问题的旧浏览器版本时,您才会使用它。

于 2020-03-14T18:28:59.180 回答
0

Sizzle 是一个纯 JavaScript CSS 选择器引擎,旨在轻松放入主机库。

他们说它是 jQuery 项目的衍生产品,但是当谈到 jQuery 和 Sizzle 之间的区别时,JQuery 是一个库构建,用于简化人们发现难以理解的 javascript 复杂语法,并获得一个特别是初学者的网格。因此,如果您使用的是 JQuery,那么将会有很多开销,而 Sizzler 提供的开销相对较少。

它更喜欢使用 querySelector 而不是 Sizzler,因为它只是一个额外的开销,可以很容易地用 VanillaJS 完成,所以为什么要浪费它。他们都做同样的事情。

于 2020-03-14T18:22:04.917 回答