1

1 が 2 より速いのはなぜですか?

  1. $('#p1').find('span');
  2. $('#p1 span');
4

3 に答える 3

1

jQuery 1.4では、セレクターがセレクターであるかどうかがチェックされますid(あなたのような#p1)。

  • そうであれば、 document.getElementId(...)が呼び出され、結果が jQuery ユーティリティ オブジェクトにラップされて返されます。
  • それ以外の場合、jQuery はSizzleを呼び出し、Sizzle が要素を検索するために行うことは何でもします。そして、ソースから判断すると、これはかなり重要なことです。
于 2010-08-18T19:18:42.693 に答える
1
于 2010-08-18T18:55:25.740 に答える
0

あなたの場合、おそらく #1 は #2 よりも高速ですが、反復回数と検索する要素の数によっては、他のシナリオでは #2 が #1 よりも高速になる可能性があります。

例: に 3 つspanの要素があり、他の要素#p1がない場合、find はそれほど多くの CSS マッチングを行おうとしないため、#1 は #2 よりも高速になると思います。しかし、1000 個spanの要素と 2000 個の他の要素#p1がある場合、すべての要素を 2 回反復する必要がないため、#2 の方が高速であるに違いありません。

于 2010-08-18T19:01:48.517 に答える