私は簡単なビンを持っており、本当に答えを見つけることができません。私は$('something here')
150回を使用するコードの強打を持っている場合はjQueryセレクタの効率
は、それがより効率的である:私は知っている
var item = $('something here')
かなり愚かな質問が、jQueryのだけ見つけるために持っているとして、それはよりefficentだろう項目は1回ですか?
私は簡単なビンを持っており、本当に答えを見つけることができません。私は$('something here')
150回を使用するコードの強打を持っている場合はjQueryセレクタの効率
は、それがより効率的である:私は知っている
var item = $('something here')
かなり愚かな質問が、jQueryのだけ見つけるために持っているとして、それはよりefficentだろう項目は1回ですか?
はい、結果として得られるjQueryオブジェクトを保存することは非常に効率的であり、より高速になる可能性があります。セレクタを使用するたびに、新しい検索が開始されます。 jQueryは結果をキャッシュしません。結果のjQueryオブジェクトを変数に格納すると、毎回検索を何度も何度も実行する必要がなくなります。
真(+1)ですが、これには必ずしも「必ずしも問題ではない」と「パフォーマンステストを実行する」という注釈を付ける必要があります。クリーンなコードを最初に書いてください(私は通常は*リピートセレクタを持っていません)。 –
検索は通常無視されます。それは本当のスローダウンのたびに大きなjQueryオブジェクトの作成です。 – Paulpro
検索の目的に応じて、一部のセレクタは非常に安く、高価なもの(ブラウザがネイティブにできない場合など) –
この記事によれば、変数にセレクタを割り当てる方が効率的です。これは、jQueryがセレクタに一致する要素のDOMを再度スキャンする必要がないためです。
http://geekswithblogs.net/renso/archive/2009/07/14/jquery-selector-efficiencycost-impact.aspx
また、他のヒントを提供します。たとえば、クラスセレクタだけを使用しないようにしてください。興味深いことに、$('#someID')
などのセレクタは$('div#someID')
よりも高速です。
'$("#someID ")'はネイティブ関数 'getElementById()'にマップされます。 –
ああ、意味があります。 – dangerChihuahua007
jQueryがスクリーンの背後でどのように動作しているかを正確に知るには、この記事を読んでください。 非常によく説明されています。
http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-jquery-newbs-stop-jumping-in-the-pool/
なぜhttp://jsperf.com/でテストを実行していませんか? – j08691