jQuery 对象 : to cache or not to cache?

标签 jquery caching

我的 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/

相关文章:

javascript - 应该在 jQuery 文档内部或外部编写和调用 Javascript 函数吗?

javascript - RobinBrouwer WMD - 阅读基本 jQuery

java - PlayFramework 中缓存中的对象似乎是原始对象?

c++ - 我怎么知道我的数组在缓存中?

jquery - 缓存自动完成 JSON 响应

mysql - 为什么不像memcached那样使用MySQL呢?

php - 砖石般的图片网格

javascript - 检查 'click' 事件上的 Ctrl/Shift/Alt 键

javascript - ASP.net使用clientID进行父子遍历

cakephp - 如何让 nginx 缓存重写 Assets ?