jQuery元素选择器
jQuery element selector
这两段代码在性能上有什么显著的差异吗?
var element = $("#some-element");
SomeMethod1(element);
SomeMethod2(element);
SomeMethod3(element);
和
SomeMethod1($("#some-element"));
SomeMethod2($("#some-element"));
SomeMethod3($("#some-element"));
这取决于你所说的significant
是什么意思。
第一个代码片段总是比第二个代码片段快,因为多次调用$()
是有代价的(因为jQuery不缓存以前调用的结果)。是否重要取决于您的性能要求。
在DOM中查找元素并创建一个jQuery对象。
var element = $("#some-element");
在第一个中,它重用这个对象。
在第二个,它必须做查找和创建3次,因此第一个性能更好。
是。第一个更快,第二个更慢
为什么?
因为第一次只搜索元素一次,第二次搜索三次
虽不显著,但也不可忽略。在这种情况下,因为你使用id选择器,它不会有太大的区别,但如果你要使用类选择器或属性选择器,那么它会有很大的区别。
第一个总是会给你比第二个更好的性能,因为你在多个地方重用相同的对象
嗯,第一个代码片段重用了对$("#some-element")
的第一次调用,而另一个示例需要查找#some-element
三次。
后者:
- 3个字符串创建(包含选择器的字符串字面量)
- 对
$()
的3个函数调用,每个调用都会导致 中更多的函数调用 - 对文档进行3次相同元素的搜索
给定所使用的选择器的类型,我不会说它是重要的,但后者需要更多的处理时间和使用更多的内存(参见上面的列表)。这些东西加起来就会超过应用程序的大小。
使用不那么直接的选择器,它可以更快地变得重要。
编辑:后者,然而,是丑陋的,让我发疯。:)
相关文章:
- 在动态创建的元素上获取对特定选择器的引用
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 如何通过选择器元素将图像添加到javascript下拉警报消息中
- Angular Datetimepicker:指令'的模板;uib时间选择器'必须只有一个根元素
- 选择不带选择器的元素,仅使用元素ID
- 动态修改一个元素,使其与给定的选择器匹配
- 循环遍历元素jquery选择器
- jquery点击选择器附加在多个元素上
- 如何检查日期选择器和时间选择器元素是否使用JQuery/Javascript设置
- jquery复杂选择器,按元素和类以开头
- 如何查找包含特定选择器的父元素
- 如何在AnglujarJS ng中继器中选择特定元素
- 我可以让 jQuery UI 日期选择器元素在单击日期时不重置吗?
- Jquery 选择器元素内部的其他
- 当选择器元素被另一个元素遮挡时使用jQuery.on()
- Jquery返回对象而不是选择器元素
- 没有类的jQuery选择器元素
- 重新加载tableview的选择器元素与更新的数据在钛
- 引导时间选择器只选择第一个时间选择器元素