6

本当にたくさんの子要素 ​​(1000 秒) を持つ親要素があります。最後の子要素へのハンドルを取得する最速の方法を探しています。私が見つけたオプションは次のとおりです。

$('.parent .child').last()

$('.parent .child:last')

ブラウザ間でどちらが確実に高速かについての意見はありますか?

編集

これを測定するために jsfiddle でテストを作成しましたが、違いはほとんど無視できることがわかりました。.last() のパフォーマンスの方が優れていましたが、違いはごくわずかです。:last セレクターを使用しても、実際には要素のリスト全体を取得してから最後の要素を返すと思いますか? 信じられない。

フィドル: http://jsfiddle.net/techfoobar/GFb9f/8/

4

2 に答える 2

5

多くの最新のブラウザーは をサポートdocument.querySelectorAll()しているため、セレクター文字列をそのまま渡すことができ、最後に一致したアイテムがポップオフされるため、より高速$('.parent .child').last()になるはずです。

後者では、:lastは標準の疑似セレクターではなく、Sizzle はセレクター文字列のチャンク化を開始してマッチングを開始する必要があります。

ただし、全体として、最も読みやすいと思われるものを使用します。これを最適化するには、まずアプリケーションにパフォーマンスの問題があり、このセレクターがボトルネックであることを確認してください。

于 2012-08-31T05:27:57.443 に答える
1

この性能テストは必見です!

更新: この関連する質問には、既に適切な回答があります。

于 2012-08-31T05:35:45.420 に答える