我正在研究一些JQuery代码,我对缓存选择器有疑问。我有一个在滚动时调用的某个函数(因此需要很快)。我尝试在初始化期间缓存函数中使用的选择器,如下所示:
var myElement = $('#myElement');
function onScroll()
{
myElement.whatever();
}
当我在firebug中分析代码时,我发现JQuery选择器函数的调用频率是onScroll
函数的5倍(我在函数中使用了5个不同的选择器),并且对大多数函数负责执行时间。
1)那么以这种方式缓存的好处到底是什么?我不是讽刺的。)
2)我理解选择器需要在DOM更改的情况下重新运行,但有没有办法缓存单个选定对象,这样每次都不需要运行该函数,同时保留在JQuery中?
答案 0 :(得分:2)
当您使用变量myElement
时,您正在使用一个jQuery对象,该对象包含对创建对象时找到的元素的引用。使用jQuery对象时,不会重新运行选择器来更新元素集。
是的,你完全按照你的表现行事。