JQuery 缓存选择器 - 我是不是误会了



我正在研究一些JQuery代码,我有一个关于缓存选择器的问题。我有一个滚动时调用的某个函数(因此需要快速)。我尝试在初始化期间缓存函数中使用的选择器,如下所示:

var myElement = $('#myElement');
function onScroll()
{
    myElement.whatever();
}

当我在 firebug 中分析代码时,我看到 JQuery 选择器函数的调用频率恰好是 onScroll 函数的 5 倍(我在函数中使用了 5 个不同的选择器),并且负责大部分执行时间。

1)那么这种方式缓存到底有什么好处呢?我不是在讽刺:)

2)我知道如果DOM发生变化,选择器需要重新运行,但是有没有办法缓存单个选定的对象,以便函数不需要每次都运行,同时保持在JQuery中?

  1. 使用变量myElement时,使用的是 jQuery 对象,该对象包含对创建对象时找到的元素的引用。使用 jQuery 对象时,不会重新运行选择器以更新元素集。

  2. 是的,你完全按照你展示的那样做。

相关内容

最新更新