私はいくつかのJQueryコードに取り組んでおり、セレクターのキャッシュについて質問があります。スクロール時に呼び出される特定の関数があります(したがって、高速である必要があります)。次のように、初期化中に関数で使用されるセレクターをキャッシュしてみました。
var myElement = $('#myElement');
function onScroll()
{
myElement.whatever();
}
firebugでコードをプロファイリングすると、JQueryセレクター関数が関数のちょうど5倍の頻度で呼び出されonScroll
(関数で5つの異なるセレクターを使用します)、実行時間の大部分を占めていることがわかります。
1)では、この方法でキャッシュすることの利点は正確には何ですか?私はサルドニックではありません:)
2)DOMが変更された場合にセレクターを再実行する必要があることは理解していますが、JQuery内にとどまりながら、関数を毎回実行する必要がないように、選択した単一のオブジェクトをキャッシュする方法はありますか?