详细信息:
应该缓存常用的jQuery选择器。
var $thing = $("#thing");
// ...lots of invocations of $thing...
选择一个外部div然后使用.find()
获取内部元素可能很方便(有时候,arguably more performant),特别是如果你要从div中抓取多个东西
var $outerDiv = $("div#outer");
var $thing1 = $outerDiv.find(".thing1");
var $thing2 = $outerDiv.find(".thing2");
// ...etc....
但是,如果我有很多外部div并且在最初找到必要的孩子后从不使用它们会怎么样?
var $outerDiv1 = $("div#outer1");
var $foo1 = $outerDiv1.find(".foo1");
var $foo2 = $outerDiv1.find(".foo2");
// ...etc....
var $outerDiv2 = $("div#outer2");
var $bar1 = $outerDiv2.find(".bar1");
var $bar2 = $outerDiv2.find(".bar2");
// ...etc....
现在我有$outerDiv1
,$outerDiv2
等位于占据内存的全局命名空间中。
我的问题是:
$outerDiv*
变量?注意:
我的问题假定问题accepted answer的"jQuery object: to cache or not to cache?"的真实性。它不是重复的,因为如果我们知道一些全局缓存的选择器将不再被使用,它会考虑内存影响而扩展。