jQueryは、オブジェクトをビルドして返す関数です。その部分はそれほど高価ではありませんが、実際のDOMルックアップにはかなりの作業が必要です。getElementByIdやgetElementsByClassNameなどの既存のDOMメソッドに一致する単純なクエリ(IE8には存在しないため、非常に遅い)のオーバーヘッドはそれほど高くありませんが、作業(DOMアクセスをラップするオブジェクトの構築)の違いは確かです。メソッド)およびほとんど作業なし(既存のオブジェクトを参照)。再利用を計画している場合は、セレクターの結果を常にキャッシュしてください。
また、使用しているxpathのものは、一部のブラウザーでは非常に高価になる可能性があるため、はい、間違いなくキャッシュします。
注意すべき点:
- IDのない長い一連のJQパラメータ
- IE8以下のクラスのみのセレクター(タグ名「div.someClass」などを追加)を大幅に改善-IE8以下では、スピーディーなネイティブメソッドを使用するのではなく、インタープリターレベルですべてのHTMLをヒットする必要があります。クラスを使用する
- xpathスタイルのクエリ(多くの新しいブラウザはおそらくこれらを問題なく処理します)
セレクターを作成するときは、それに到達するためにどのくらいのマークアップを調べる必要があるかを考慮してください。特定のID内の特定のクラスのdivのみが必要であることがわかっている場合は、$('div.someClass')だけでなく、これらの$('#theID div.someClass')のいずれかを実行します。
ただし、それでも、作業回避の原則に基づいて、2回以上使用する場合は、値をキャッシュしてください。また、リクエストを繰り返してDOMを混乱させることはできるだけ避けてください。