我什么时候应该使用$(object),什么时候应该使用$ object?

时间:2014-09-10 18:00:36

标签: javascript jquery

假设我有一个匹配“.foo”的元素。

<div class="foo"></div>

我从经验中学到了不止一次调用发现者的性能,如果我试图多次更改同一个对象。

$(".foo").doOneThing();
$(".foo").doAnotherThing();
$(".foo").doSomethingElse();
// Makes jQuery look for ".foo" three times, bad!

$foo = $(".foo");
$foo.callAllThreeOfTheThingMethodsInThePreviousBlock();
// Calls $(".foo") only once, but occupies memory with a jQuery object version of the foo div.

我的问题是,在放弃内存以保存jQuery对象而不是再次调用jQuery方法之前,你需要多少次使用此finder?

我问,因为有一天我做了每个查找器,我不止一次调用存储的$ object变量;如果我只使用取景器,比如两三次,我的老板曾说过使用取景器而不是存储的物体。你对此有何看法?

2 个答案:

答案 0 :(得分:3)

使用var $foo = $(".foo");

多次使用$(".foo")将使jQuery重复搜索。看起来jQuery没有缓存选择器,即使它确实如此,最好是自己聪明而不依赖别人。

Does jQuery do any kind of caching of “selectors”?

答案 1 :(得分:1)

在查询重复的大多数情况下,建议将查询结果存储在变量中。 根据您的具体情况,您也可以连续调用这些功能。

$(".foo").doOneThing().doAnotherThing().doAnotherThing();