![]() |
1
14
假设您至少使用了jquery 1.3(即添加了sizzle),那么您看到的性能是由于DOM被遍历的变化造成的。从 here :
在第二个例子中(
但是,在第一个示例中,每个调用都明确限定了每个步骤
|
![]() |
2
2
因为你在减少搜索的上下文。 在案例B中,它必须搜索每个DOM元素,以查看它是否满足条件。 在案例A中,is可以快速决定忽略任何不是“td.someColumnClass”的内容,然后它可以获取dom的子集并忽略任何不在“span.editmode”中的内容。所以现在它有一组小得多的元素要搜索来查找“input”。 |
![]() |
3
1
A是更多的电话,但更简单。B是一个电话,但更复杂。在这种情况下,呼叫的复杂性极大地影响了呼叫的数量。 |
![]() |
4
1
在我的经验中,jquery处理selector的方式与css稍有不同。 正如乔希指出的,减少搜索的上下文是关键。 我发现使用两个参数选择器非常快 如何比较速度? 你不需要这里所有的var,这只是为了清楚我在做什么。
仁慈, 丹 |
![]() |
5
1
我自己做了一些关于jQuerySelector性能的研究。一个大问题是在Internet Explorer上按类名查找。IE不支持getElementsByClassName,因此jQuery和其他框架通过迭代所有DOM元素在JavaScript中“重新实现”它。 查看以下分析日志 jQuery Selector Performance |
![]() |
6
-1
这里有一篇关于选择器性能的非常有趣的文章: http://blogs.atlassian.com/developer/2009/08/jquery_bondage.html 在本文中,作者展示了一个“bind”jquery扩展,它显示了函数被计算的次数。 |
![]() |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
![]() |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
![]() |
Prince · 复制大型文件需要更多时间 2 年前 |
![]() |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
![]() |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |