3

「クラスで選択するときにタグ名を使用する必要がありますか?」という古い質問に対する明確な答えを見つけようとしています。

WebでjQueryのベストプラクティスを探すところはどこでも、ほとんどの場合、jQuery( "tag.className");を使用する必要があります。これは最初にgetElementByTagNameを使用するためです。

そこで、jsPerfにベンチマークを設定して確認しました。私は自分のWebサイトのソースマークアップを使用したので、より現実的なテストを行い、ChromeとOperaを除くすべての最新のブラウザーでベンチマークを実行します。他のすべての最新のブラウザーは、jQuery( "。className");と言います。これは私がオンラインで本やチュートリアルで読んだほとんどすべてに反しますが、これは桁違いに高速です。これらのブラウザはgetElementByClassNameをネイティブにサポートしているため、より高速であると思います。

ベンチマークは次のとおりです。

http://jsperf.com/length-detection

何が一番いいと思いますか?

どうもありがとう

クリス

4

1 に答える 1

3

本当にパフォーマンスを求めているのであれば、要素のクエリにjQueryを使用しないでください。このjsperfを参照してください:http://jsperf.com/jquery-selecting-by-class

そこで、「マグニチュード」について話すことができます。正直なところ、現在のjQueryソースを調べないと、jQueryが内部で何をしているのかわかりません。使用している場合でも、getElementsByClassNamesjQueryに伴うすべての血液とオーバーヘッドのため、全体的なパフォーマンスへの影響はほとんどありません。とにかく、要素をクエリするための基本的なルールは単純です。過度に指定しないでください。CSSセレクターは右から左に機能するため、のようなクエリがある場合element.classname、ほとんどのエンジンは最初にクラス名がのすべての要素を取得しclassname、次に要素タイプがに属するノードを除外しelementます。

于 2012-04-23T10:02:52.613 に答える