1

我正在寻找有关当您对其运行选择器时 Sizzle (jQuery) 在内部执行的操作的信息。理想情况下,要么是写过一篇关于不同浏览器或处理方式的文章/博客文章的人,要么是可以为各种浏览器反编译选择器的网站。具体来说,我有一个团队说我编写的代码将 IE7 锁定在非常大的数据集上:

.find('.row:not(.row-0) .col-' + colN + ':not(.forbid-transfer)')

并将其更改为:

.find('.row:not(.row-0) .col-' + colN).filter(':not(.forbid-transfer)')

修复速度问题。

对我来说,这是一个完整的wtf,因为我假设这两个在引擎中是相同的,但显然它们不是。请注意,父容器中的所有内容都是 div,因此将其更改为div.row... div.col....不应该加速任何事情。

4

1 回答 1

0

我敢打赌

.find('.row:not(.row-0)').find('.col-' + colN).filter(':not(.forbid-transfer)')

在 IE7 中会更快,可能不是在支持“querySelectorAll()”的浏览器中。即使这样,它也取决于页面的细节。

于 2011-07-27T17:18:57.050 回答