假设我有一个匹配“.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变量;如果我只使用取景器,比如两三次,我的老板曾说过使用取景器而不是存储的物体。你对此有何看法?
答案 0 :(得分:3)
使用var $foo = $(".foo");
多次使用$(".foo")
将使jQuery重复搜索。看起来jQuery没有缓存选择器,即使它确实如此,最好是自己聪明而不依赖别人。
答案 1 :(得分:1)
在查询重复的大多数情况下,建议将查询结果存储在变量中。 根据您的具体情况,您也可以连续调用这些功能。
$(".foo").doOneThing().doAnotherThing().doAnotherThing();