1

ネイティブ JavaScript でコーディングすると、jQuery でコーディングする場合よりもコードの実行速度が速くなることはわかっていますが、どれくらい速くなるでしょうか?

特に、非常に大きな webapp の場合、jQuery よりもネイティブ JavaScript でのコーディングに長い時間を費やしながら、速度の向上が価値があるかどうかを知りたいですか?

それとも、速度の違いはそれほど大きくありませんか?

たとえば、jQuery で AJAX リクエストをセットアップするには、$.ajaxorを呼び出し$.postていくつかのパラメーターを渡すだけですが、ネイティブ JavaScriptでは、ユーザーのブラウザーなどに応じてXMLHttpRequestorオブジェクトを作成する必要があります。ActiveXObject

4

5 に答える 5

3

速度の違いはミリ秒単位であり、合計すると数千回の jQuery 呼び出しが発生する可能性があります。

その理由は、jQuery を使用すると、入力した情報によってさまざまなシナリオをテストするため、さまざまな方法で機能できるためです。使用しない方法であっても機能します。使用する関数については、jQuery は、特定のアプリに決してフィードしない可能性のある変数とシナリオのテストを引き続き実行します。

それが遅くなる原因です。これは、jQuery を何回呼び出すかによって大きく異なります。

ただし、クロスブラウザーとの互換性も非常に高く、これは大きなプラスです.

多くの理由から、私は個人的に jQuery をお勧めします。しかし、繰り返しになりますが、使用する必要がある重さ、および「大きな」違いとして何を定義するかによって異なります。

于 2012-10-14T08:40:39.603 に答える
1

試して。

Web アプリの一部を選んで JavaScript で記述し、jQuery を使用して同等のことを行います。パフォーマンスをテストします。

jQuery よりも優れた JavaScript を開発できるかどうかは、あなたまたはチームのスキルにかかっています。jQuery は、多くのブラウザーの癖を抽象化する、戦闘強化されたコードです。多くの開発ユースケースに対応するためにいくらかのオーバーヘッドが追加されますが、それは多くの開発者が喜んで支払う代償です。

Web アプリに必要のないオーバーヘッドを排除しながら、JavaScript で同じ機能を再作成するには、スキルと知識が必要です。

jQuery を使用することをお勧めします。ただし、jQuery が Web アプリの一部になるとコードになるため、jQuery が何をしているのか、その理由を理解するよう努力する必要があります。

于 2012-10-14T09:08:27.050 に答える
1

やりたいことが AJAX リクエストだけの場合は、XMLHttpRequest の作成とブラウザ依存の処理をラップする独自のミニ フレームワークを作成できます。

必要な他の機能についても同じ方法で実行できます。

ただし、物事は非常に急速に複雑になっています。アニメーションについて考えてみましょう。jQuery またはその他のフレームワークは、それをより適切かつ高速に実行します。クロスブラウザテスト済み。

既存のフレームワークを使用してください。

もう 1 つ:時期尚早の最適化はすべての悪の根源です。まずアプリケーションのボトルネックを見つけて、その部分を最適化します。

于 2012-10-14T08:44:10.300 に答える
0

私が構築しているアプリでは、JQuery と独自のプロトタイプを組み合わせて使用​​しています。ユーザーの観点からの時間差は、ストレート JS を使用するだけでは無視できます。さらに、CBS (クロス ブラウザー サポート) は非常に重要です。

于 2012-10-14T09:13:32.187 に答える
0

私の経験から、最善の方法はネイティブ JS の代わりに jQuery を使用することだと思います。特に、アプリが IE6-IE8 でのサポートを必要とする場合。ほとんどの時間は、開発に集中するのではなく、クロスブラウザーの問題を修正することに費やされます。

必要に応じて独自の「ミニフレームワーク」を作成したとしても、これが jQuery ほどの品質と速度を備えていないとは思いません。ただし、jQuery を使用する場合は、ベスト プラクティスに従ってください。パフォーマンスの問題は発生せず、コードは小さくなり、読みやすくなります。

高度に専門化された Web アプリでのみネイティブ JS を使用する必要があると思います。

于 2012-10-14T08:43:18.977 に答える