-5

以下の 2 つの構文にパフォーマンスの違いの影響はありますか?

  1. $(“span.foo”)
  2. $(“.foo”)

誰かが私に、最初のものは単にどのspanクラスを検索するfooのか、2番目のものはすべての要素の中から検索すると言った.

4

2 に答える 2

1

誰があなたにそれが正しいと言ったことがありますか。

100,000回以上の繰り返しで2つの要素を選択すると、約0.5秒(Firefox、Chromeはそれよりも短い)のように見えます。

http://jsfiddle.net/83qcy/

var start, end, i;

start = new Date();
for(i = 0; i < 100000; i++){
    $("span.foo");
}
end = new Date();
$("span.foo").html(end - start);

start = new Date();
for(i = 0; i < 100000; i++){
    $(".foo");
}
end = new Date();
$("div.foo").html(end - start);

より多くの要素を選択すると、確かに時間がかかることを想像できると思います。おそらく 100,000 回も選択することはありませんが、Web サイトが大きくなるにつれ、JavaScript のパフォーマンスが最大の要因の 1 つになる可能性があり、jQuery のコンテキストとセレクターはそれをはるかに効率的にすることができます。

また、「foo」のクラスを持つスパンに関数を適用するだけの場合は、不要な要素を選択している可能性があります

于 2013-05-29T03:35:57.570 に答える