2012-02-25 20 views
0

しばらくの間私を悩ましていたことについてちょっとしたアドバイスをした直後。パフォーマンスがオプション1またはオプション2を使用する方が良いでしょうか?それとも全く問題ではないのですか?jQueryの速度最適化

  1. $('.class').removeClass("class");
  2. $('*').removeClass("class");

私は、このコード(または類似)を使用するので、私が尋ねる理由は、かなり頻繁に、私は可能な限り最適化私のコードを試して始めています。どちらも機能しますが、どちらが優れていますか?

+0

オプション1は、クラス名が '.class'の要素のみを検索し、2番目のオプションはすべての要素を繰り返し処理するため、より優れています。 –

+0

一般的に言えば、詳細な要素検索ルールのほうがパフォーマンスが優れています。 '$( 'class')' $( 'div.class')より遅い '$( '#aIDisBest')' –

+0

@Ofcourse、2番目のものは次のようになります。これはワイルドカード検索のように遅いです。以前は特定のクラスだけを検索しています – kobe

答えて

0

あなたはjavascriptのテストを投稿することができjsperf.comという名前のウェブサイトがあります。多数のコードスニペットを作成します。スニペットをテストできるウェブサイトでは、スニペットが最も速いスニペットが表示されます。

私はあなたのためのテストを用意しました。ただJavaをインストールしてテストを実行するだけです。オプション1は良いです:)

http://jsperf.com/select-speed

+0

これはおかげで、これはもっと速いと感じましたが、実際にそのリンクが実際に役立つかもしれないので今尋ねてうれしいです! :) –

0

は、最初の方が良いですが、getElementsByClassNameをネイティブサポートしているまともなブラウザで作業している場合のみです。クラスセレクタについては

ブラウザがサポートしている場合は、jQueryのでは、JavaScriptのネイティブ getElementsByClassName()機能を使用しています。性はほとんどありませんそれ以外の場合は

、それは同じだろう...

0

私は最初のものが速くなると思います。特定のクラスをターゲットにしています(IDはもっと速くなければなりません)。 *はすべての要素を対象とします。

関連する問題