在所有地方重复$(),或者声明一次然后重用
repeat $() all over the place or declare once and reuse?
使用jQuery,如果我写这样的代码
$('blah').doSomething();
//bunch of code
$('blah').doSomethingElse();
//bunch of code
$('blah').doOtherStuff();
每次我说$('blah')时是否创建了一个新的jQuery对象?
如果是这样,是否可以这样做来减少对象创建的开销:
var blah = $('blah');
blah.doSomething();
//bunch of code
blah.doSomethingElse();
//bunch of code
blah.doOtherStuff();
有意义吗?
完全正确!
为什么缓存
缓存的另一个好处是代码的可维护性。如果选择器只在一个地方,那么修改它只需要在一个地方完成。相信我,这让维护代码更容易。 连锁尽管你可以更进一步(在相关的地方),把你的呼叫串联起来:
$('blah')
.doSomething()
.doSomethingElse()
.doOtherStuff();
这稍微好一点,有两个原因。首先,您没有使用额外的变量,因此可以节省少量内存。其次,该语言不会对使用的每个标识符执行查找,因此速度更快。
所以,为什么人们仍然[在]使用$()
人们大量使用$()
的一个原因是他们不知道更好的。
另一个原因是因为元素选择过去比较慢。但与大多数的事情在浏览器中,查询对象与选择器正在快速优化(document.querySelectorAll
),这意味着它不是这么大的交易缓存或不缓存,所以也许考虑到他们允许自己不缓存。
也就是说,如果您的示例与基准测试的示例相似,那么也许您可以得出自己的间接结论,缓存可能只是一个麻烦。
相关文章:
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 设置随机数,然后每5秒随机减少一次,直到达到0(javascript)
- 显示数字,然后每5秒随机更改一次(javascript)
- 单击时预置图像 - 仅预置一次,然后停止
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- 做一件事,然后在react js中每隔15秒做一次
- 地图,rails 4.2,javascript,鼠标悬停,只工作一次(或两次).然后在重新加载之后
- 一次选中4个复选框,然后将页面重定向到新页面
- 其中是在ReactJS中放置一个值的最佳位置,该值由传入的初始参数计算一次,然后再也不会更改
- Flickity gallery - 如何循环浏览一次然后停止自动播放
- 引导 2 轮播循环一次,然后停止
- 如何使函数在 2 分钟后执行,然后每隔 2 分钟执行一次
- Javascript 这个关键字在原型函数中的递归执行一次,然后未定义
- 调用函数一次,然后设置间隔
- 然后,Jquery 加载内容每 2 秒刷新一次
- jQuery事件触发一次,然后再也不会触发
- 如何只运行一个函数一次,然后运行另一个依赖于相同元素的函数
- 在所有地方重复$(),或者声明一次然后重用