函数中的简单 Jquery 选择器优化
Simple Jquery Selector Optimization in Functions
var func = function () {
if (x) {
$('.classA').doSomething;
} else
$('.classA').doSomethingElse;
};
我很好奇函数的存储方式和 运行 以及它们如何影响 Jquery 选择器。我读到最好不要重用选择器。如果您在连续的代码行中反复尝试查找具有 classA 的元素,最好存储元素引用并直接调用它。但是在上面的例子中,创建一个元素引用变量并将其放在 if/else 语句之外有什么价值吗?如:
var func = function () {
var element = $('.classA');
if (x) {
element.doSomething;
} else
element.doSomethingElse;
};
似乎在任何一种情况下,Jquery 都只需要遍历 DOM 一次,因为在第一个示例中,它只会 运行 If 或否则。
现在我知道您可以在函数外部创建元素引用并在 运行 调用函数之前将其存储到内存中,但是如果该元素不存在并且仅由前一个创建那么 运行 是我的示例的函数吗?
两个函数的性能应该差不多。
但是第二个你有以下好处:
- 你可以给选中的对象起一个易读的名字(更容易发现错误)
- 已缓存以备日后需要(p.e。重构后)
- 选择器由一个字符串组成。如果您在选择器中输入错误,它不会抛出任何错误
- 如果你想改变选择器(p.e.classA -> classB)你只需要一次
var func = function () {
if (x) {
$('.classA').doSomething;
} else
$('.classA').doSomethingElse;
};
我很好奇函数的存储方式和 运行 以及它们如何影响 Jquery 选择器。我读到最好不要重用选择器。如果您在连续的代码行中反复尝试查找具有 classA 的元素,最好存储元素引用并直接调用它。但是在上面的例子中,创建一个元素引用变量并将其放在 if/else 语句之外有什么价值吗?如:
var func = function () {
var element = $('.classA');
if (x) {
element.doSomething;
} else
element.doSomethingElse;
};
似乎在任何一种情况下,Jquery 都只需要遍历 DOM 一次,因为在第一个示例中,它只会 运行 If 或否则。
现在我知道您可以在函数外部创建元素引用并在 运行 调用函数之前将其存储到内存中,但是如果该元素不存在并且仅由前一个创建那么 运行 是我的示例的函数吗?
两个函数的性能应该差不多。
但是第二个你有以下好处:
- 你可以给选中的对象起一个易读的名字(更容易发现错误)
- 已缓存以备日后需要(p.e。重构后)
- 选择器由一个字符串组成。如果您在选择器中输入错误,它不会抛出任何错误
- 如果你想改变选择器(p.e.classA -> classB)你只需要一次