2012-05-03 9 views
1

私はjQueryのキャッシュを少し明確にする必要があります。私の理解では、これ:jQuery - 複数のセレクタを1つの変数にキャッシュしますか?

var $element = $('#element'); 

たちは、この要素を参照する場合、私たちは複数回恩恵を受ける与えます(私はそれを変更、またはそれにイベントをリッスン意味参照してくださいによる。)。これは正しいです?

正しい場合は、次のコードが意味をなさないかどうか、なぜですか?私が見る何

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

はjQueryのは、私はこれを行うことができます(したがって、すべての3つのボタンに同じ素敵なテーマを適用)が、私はドキュメントはどこでもどのような方法でこのヘルプのパフォーマンスをして見つけることができないということです。

+1

'$ button'は' $( '#submit、#save、#reset'); 'を使うよりもはるかに優れています。 –

答えて

2

はい、これは意味がありますが、それらのボタンを複数回何回もセットで行う必要がある場合に限ります。それは起こりそうもない。

実際に高頻度(アニメーションなど)で作業を行うまでは、jqueryの最適化であまり努力しないことをお勧めします。

2

これのパフォーマンスの側面はごくわずかです。あなたは、複数の要素配列または3つの要素配列を作成することについて話していますが、これらの要素はすべて無視できます。

基本的に、jQueryはセレクタのすべての一致する配列を構築し、それを返します。

あなたのJavaScriptのパフォーマンスを心配する前に他の面について心配してください。

1

$elementまたは$buttonに複数回アクセスするとパフォーマンスが向上する唯一の方法です。 $('#element')を実行すると、jsはそのIDを持つ要素のページを検索し、何をするかを指示します。次回に$('#element')を実行すると、その要素のページが再度検索されます。 var $element = $('#element')を使用している場合は、次回($elementを使用して)呼び出すと、参照が既に格納されているため、検索は行われません。

関連する問題