【发布时间】:2014-07-07 17:49:30
【问题描述】:
那么我们为什么要缓存 jQuery 对象呢?
在以下场景中:
var foo = $('#bar');
foo.attr('style','cool');
foo.attr('width','123');
$('#bar').attr('style','cool');
$('#bar').attr('width','123');
为什么第一个选项比第二个选项好很多?
如果是因为性能问题,如何减少使用量?
【问题讨论】:
-
我认为如果您多次使用
$('#bar'),第一个会更好,在您的示例中,它只使用了一次。所以这里应该没有任何优势。 -
@KingKing,哎呀,我编辑了它以包含两个动作。
-
来自在 Google 搜索结果中找到的 @mplungjan 文章,这里是相关的 JSPerf 测试:jsperf.com/ns-jq-cached/3
-
嗯。 Google 确实有帮助!
-
如前所述,缓存返回的查询结果可防止多次查找(尽管在
#查找的情况下,它是一个非常有效的getElementbyID),但纯粹是为了提及它:JQuery 帮助通过让其函数重新返回对象,因此 attr 返回与使用相同的对象,从而使以下成为可能:$('#bar').attr('style','cool').attr('width','100');。具有重用查询对象的相同优势。
标签: javascript jquery performance caching