为什么cachingjQuery对象?
那么为什么我们应该cachingjQuery对象呢?
在以下情况下:
var foo = $('#bar'); foo.attr('style','cool'); foo.attr('width','123');
$('#bar').attr('style','cool'); $('#bar').attr('width','123');
为什么第一个选项比第二个选项好得多呢?
如果是因为性能,它是如何减less使用量的?
因为jQuery函数里面有很多代码,如果你用相同的input执行它多次,期望相同的输出,就会产生不必要的开销。 通过caching结果,您可以存储对正在查找的确切元素或元素集的引用,因此您不必再次search整个DOM(即使是相当快的search)。 在许多情况下(简单的页面代码less)你不会注意到一个区别,但是在你这样做的情况下可能会有很大的不同。
你可以通过在jsPerf中testing你的例子来看到这一点 。
你也可以把它看作为了可读性目的引入解释variables重构模式的一个例子,特别是比在问题中更复杂的例子。
jQueryselect器$('#foo')
在整个DOM中search匹配的元素,然后返回结果。
caching这些结果意味着jQuery在每次使用select器时都不必searchDOM。
编辑: document.getElementById()
是什么jQuery用来search的DOM,但没有足够的jQuery。