3

I just ran this jsPerf test in Chrome 18 and found that .class performs significantly better than tag.class despite the myriad of resources that say otherwise. I know this questions was recently asked on SO but without a definitive / satisfactory answer other than "don't use jQuery". Can someone shed some light on the latest best practices?

NOTE: Assume clarity and semantics are taken care of (e.g. I have a class on an anchor tag called item-link it's going to come off just as clear with a.item-link as it will .item-link).

4

2 に答える 2

4

あなたはベストプラクティスについて質問しているので、スクリプトの実行時間を1マイクロ秒短縮できる方法よりも読みやすい方法に傾倒します。

于 2012-05-14T19:50:29.573 に答える
1

最新のブラウザーはより優れた実装を備えているgetElementsByClassNameため、jquerys クラス セレクターのみを使用すると、すぐにこのメソッドにフォールバックするため、パフォーマンスの違いと向上が見られます。

タグセレクターを前に付けると、まずjqueryはセレクターを処理し、次にそれをさまざまなトークンに分割してから、コントロールを検索します。ここでどの順序に従うか、classNameを持つすべての要素が取得されるかどうかはわかりません最初に追加のセレクターが適用されるか、その逆が適用されますが、jquery のソース コードを参照して調べることができると確信しています。

そして、読みやすいかどうかの議論に関しては、セレクターがどのコントロール上にあるかを知ることで何を得ることができるかわかりません。それが必要な場合は、神のためにクラスに適切な名前を付けてください..タグ名??:/

于 2012-05-14T19:53:52.900 に答える