私はちょうど数ミリ秒相当のパフォーマンス時間についてOCDになっていることを知っていますが、なぜ私が次のことが当てはまるのだろうと思っていました。それは私の論理に反するようです。私は3つの異なるセレクタを使用していた(9回の試験の平均を取って、セレクタを介して1000倍のループ)、いくつかのテスト後jQueryセレクタのパフォーマンス
$('div.someclass').hover(function() {
$(this).children('img').fadeOut(function(){
// do something
});
}, function() {
// do something
});
:
私は現在持っているホバーに内部画像をフェードアウトDIVを有します
$(this).children('img')
は、約400msで最速の-avgを実行することを確認しました。$('img', this)
- 平均約900ms;およそ1000msで
平均これは、2つの関数呼び出しを有するものよりも遅くなるだろうとの論理に反する - と
$(this).find('img')
は最も遅い実行されます。さらに、私はこれを内部的に読んだことがあります.jQueryは2番目のケースを3番目のケースに変換するので、3番目のケースは遅くなりますか? どのような考えですか?
また、$( 'img'、this)は必ずしも1つの関数呼び出しである必要はないことも指摘しておきたいと思います。 –
jQueryを使用するときの関数呼び出しの数を数えることは無意味です。なぜなら、内部的には、セレクタの処理中に数十から数百の関数が呼び出されるからです。 – Blixt
あなたのお手伝いをありがとう! –