jQuery - パフォーマンスにアクセスする要素

私は、私が取り組んでいるアプリケーションで、かなりjqueryのUIとjqgridを使用しています。私が見ているほとんどの例では、これらのコントロールにはjqueryセレクタを使ってアクセスして   id:$( "#elementid")

私の質問は、jqueryは何度も何度もこれをやり直すのに十分なパフォーマンスを提供しているのですか?または、初めて参照されたときに要素への参照を保存する方が良いでしょうか? var elementName = $( "#elementid");

代わりに参照を再利用しますか?

2

3 答え

ID用のJQueryの使用は、JavascriptのgetElementById()と同じです。

直接参照を使用するここでは、DOMで毎回検索するよりも高速ですあなたのオブジェクトを取得するツリー。

IE8 getElementById:0.4844 ms   、IE8 id配列検索:0.0062 ms

     

Chrome getElementById:0.0039 ms   、Chrome ID配列検索:0.0006 ms

これらは10000ゲットの結果です。ベンチマークのコード全体を見るにはリンクをクリックしてください。

1
追加された
まあ、それは数学的です。あなたが番号でやっていることは私が思う個人的なものです;)
追加された 著者 Patrick Desjardins,
10.000ルックアップの半分のミリ秒は私の世界ではパフォーマンスの向上としてカウントされませんが、その決定は完全に作者にあります:)
追加された 著者 David,
私の目的では大したことではないように思えますし、グローバル変数を使って自分のコードを捨てて、いくつかの要素を参照する必要がありません。ありがとう。
追加された 著者 zaq,

actually jQuery best practice is caching references. diving into to DOM each time is costly and as we learned (from one of SO founders) performance is a feature. you can look into a variery of jQuery best practice in jQuery Fundamentals

1
追加された

変数を定義して再利用する方が多少速く、 "ベストプラクティス"と見なすこともできますが、 $( '#id')はネイティブの Element.getElementById ほとんどのアプリケーションで十分に速い。数千回の検索でテストを行ったとしても、人間の心には目立つ違いはありません。

私はそれが最後にコーディングスタイルの問題だと言いたい。

0
追加された