1
30
当您有一个要搜索的更大的DOM时,上下文真的很有帮助。在这种情况下,搜索ID已经很快了,上下文并没有太大帮助。上下文真正起作用的地方是,当您按标记名或类选择时。 尝试这样的测试: http://jsbin.com/aciji4/4 当您像这样在DOM中增加项目数时,您可以看到上下文的时间安排变得更好: http://jsbin.com/aciji4/6 |
2
4
使用上下文(而不是单独使用选择器)可能需要更长的时间,因为在内部,上下文使用.find()方法,所以本质上,您真正要做的就是
我主要把它看作是识别事件和迭代器中上下文变化的元素的一种简单方法,因为
比…更漂亮
|
3
3
ID选择器依赖于浏览器本机document.getElementByID。不管怎样都会很快。 尝试使用类似DIV.Class[attribute=value]的选择器,无论使用上下文还是不使用上下文。例如*,您可以使用此选择器选择右侧的“相关”问题链接:
但是,限制选择器引擎必须重复的锚定元素的数量更快,从而评估相对昂贵的文本匹配:
*为了讨论,忽略那些链接上明显更简单的问题超链接类。 |
4
3
为了它的价值,
如果你使用
|
5
1
在重构代码之前要小心。正如所写的注释,jquery自1.4以来的工作方式完全不同。最新版本可能包含更多优化。 我修改了上面的jsbin代码以获得最近的jquery,并添加了一些额外的案例。您将看到,现在只有这三个(2,3,6)案例会受到性能惩罚,这会在每一轮中再创建一个jquery对象。休息时间差不多。 您可以在此处找到修改后的版本: http://jsbin.com/aciji4/63/ |
6
0
我已经把jsbin代码放到 jsPerf Test $context.find(“.holder”)是 两倍快 作为其最接近的竞争对手,$('.holder',$context),这是一个很好的 快十倍 比正在使用的任何其他选择器。 总之,缓存选择器并使用.find()以获得最佳性能 |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
Prince · 复制大型文件需要更多时间 2 年前 |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |