2016-12-01 10 views
-1

jQueryでidを持つ要素をクエリすると、キャッシュされるのでしょうか、それともDOMを通して反復処理されますか?jqueryはID(#)でクエリを実行すると要素をキャッシュしますか?

+1

あなたはどのキャッシュについて話していますか? –

+1

みんな...下の票を見下ろす。初心者のための合理的な質問です(特にコード関連でない場合)。ブラウザのキャッシュ検索方法を知っておくことが重要です:)それを閉じますが、最初にそれらを打ち負かすことはしないでください。> –

+0

@GoneCodingはい、これはjQueryとはまったく関係がありません。あなたの答えは素晴らしいですが、 –

答えて

2

IDで検索すると、IDごとに1つのエントリがある高速ブラウザ辞書(私の疑いのあるキャッシュ)がヒットします。

超高速であり、DOMは反復されません。

サイドノート:クラス別の検索では、現代のブラウザでも同様のアプローチを使用しますが、クラス名ごとに複数の要素があり、現在はID検索とほぼ同じくらい高速です。

1

いいえ、キャッシュされません。

jQueryのは大体このように動作します:あなたは$("#myid")を起動すると

  1. 、それはそれはそれはあなたのクエリが#passes it to native getElementById function
  2. で開始することを発見し matches your input with regexp
  3. passes your query to a function jQuery.fn.init
  4. というグローバルjQuery関数を呼び出します

これだけです。 getElementByIdの呼び出しはすでに超高速であるため、その間にキャッシュはありません。

+2

最後の部分は1つの重要な点を逃しています.getElementById'はその背後にキャッシュを持っています –

+0

確かに、それは基礎となるブラウザの実装に依存します。基本的な質問は「jQueryに常にブラウザを要求することができますか?それはそれ自身のキャッシュを実装していますか? " – jehna1

関連する問題