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/24515880/

相关文章:

ruby-on-rails - Rails 低级缓存不缓存

symfony - 如何在学说中启用第二级缓存?

javascript - 在设定的时间间隔后更改图像属性

javascript - 如何在 JavaScript 中舍入和格式化数字而不带尾随零?

javascript - 如何在 Spring 中使用 JSTL 在下拉列表中显示数据?

caching - Wro4j 动态启用/禁用缓存

ruby-on-rails - 如何使用 Ruby/Rails 缓存方法?

javascript - 单击带有 phantom.js 的链接并检索文档 html

javascript - 如何知道哪个 JavaScript 函数执行时间最长?

php - 通过在 L5 中点击浏览器上的后退按钮来防止注销后重新登录?