jQuery - 将多个选择器缓存到一个变量?

时间:2012-05-03 19:35:34

标签: jquery caching jquery-selectors

我需要对jQuery缓存进行一些澄清。根据我的理解,这个:

var $element = $('#element');
如果我们不止一次地引用这个元素,那么

会给我们带来好处(通过引用我的意思是改变它,或者在它上面听一个事件。)。这是对的吗?

如果它是正确的,以下代码是否有意义,为什么?

var $button = $('#submit, #save, #reset');

我看到的是jQuery允许我这样做(因此将相同的好主题应用于所有3个按钮),但我无法在任何地方找到文档,这会以任何方式帮助提高性能。

3 个答案:

答案 0 :(得分:2)

这方面的表现方面几乎可以忽略不计。你在谈论创建一个多元素数组或一个三元素数组,所有这些都是微不足道的。

基本上,jQuery为你的选择器构造一个所有可能匹配的数组并返回它。

在担心javascript的性能之前,先担心其他方面。

答案 1 :(得分:2)

是的,这是有道理的,但只有当你必须用这些按钮作为一套不止一次做某事时。这不太可能。

我建议你不要在jquery优化方面付出太多努力,直到你真正做到高频率的事情(比如动画)。

答案 2 :(得分:1)

如果您要多次访问$element$button,那么它有助于提升效果的唯一方法就是如此。当您执行$('#element')时,js会在页面中搜索具有该ID的元素,并执行您要求它执行的任何操作。下次执行$('#element')时,它会再次查看该页面的元素。如果你使用var $element = $('#element'),那么下次你调用它时(使用$element),就没有搜索,因为已经存储了引用。