我的 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 循环中的比较一样)。
提前致谢。
最佳答案
缓存元素总是更好,如果 n 大于 1,则缓存元素或将操作链接在一起(您可以执行 $('#something')。 something().somethingelse();
用于大多数 jQuery 操作,因为它们通常返回包装集本身)。顺便说一句,以金钱符号 $
开头命名缓存变量已经成为一种标准,这样在代码的后面就可以明显看出您正在对 jQuery 集执行操作。所以你会看到很多人稍后会执行 var $content = $('#content');
然后 $content.find('...');
.
关于jQuery 对象 : to cache or not to cache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11849692/