【发布时间】:2012-08-04 16:30:37
【问题描述】:
我的 Javascript (JS) 代码带来了一些麻烦,因为有时我需要在同一个函数中多次访问同一个 DOM 元素。还提供了一些推理here。
从性能的角度来看,是创建一次jQuery对象然后缓存它更好还是随意创建相同的jQuery对象更好? 示例:
function(){
$('selector XXX').doSomething(); //first call
$('selector XXX').doSomething(); //second call
...
$('selector XXX').doSomething(); // n-th call
}
或
function(){
var obj = $('selector XXX');
obj.doSomething(); //first call
obj.doSomething(); //second call
...
obj.doSomething(); // n-th call
}
我认为答案可能取决于“n”的值,因此假设 n 是一个“小”数(例如 3),然后是一个中等数(例如 10),最后是一个大数(例如 30,就像对象在 for 循环中用于比较)。
提前致谢。
【问题讨论】:
-
假设选择器的结果在代码执行期间不会发生变化,那么完全没有理由不缓存选择器。
-
这个答案与其他答案非常不同。你是唯一不建议缓存的人。您如何看待其他答案?
-
我认为他和我们的意思是一样的——他说“没有理由不缓存”——双重否定=>我们应该缓存:)。干杯!