我正在寻找有关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....
不应加速任何操作。
答案 0 :(得分:0)
我敢打赌
.find('.row:not(.row-0)').find('.col-' + colN).filter(':not(.forbid-transfer)')
在IE7中,会更快,也许不会在支持“querySelectorAll()”的浏览器中。即便如此,这取决于页面的细节。