jQuery元素选择器

jQuery element selector

本文关键字:选择器 元素 jQuery      更新时间:2023-09-26

这两段代码在性能上有什么显著的差异吗?

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三次。

后者:

  1. 3个字符串创建(包含选择器的字符串字面量)
  2. $()的3个函数调用,每个调用都会导致
  3. 中更多的函数调用
  4. 对文档进行3次相同元素的搜索

给定所使用的选择器的类型,我不会说它是重要的,但后者需要更多的处理时间和使用更多的内存(参见上面的列表)。这些东西加起来就会超过应用程序的大小。

使用不那么直接的选择器,它可以更快地变得重要。

编辑:后者,然而,是丑陋的,让我发疯。:)