AJAX の過度の使用はパフォーマンスに影響しますか? 大規模な Web アプリケーションのコンテキストでは、AJAX 要求をどのように処理して非同期要求を制御しますか?
9 に答える
何かを過度に使用すると、パフォーマンスが低下します。必要に応じて AJAX を使用するとパフォーマンスが向上します。特に、代替手段がサーバーへの完全なページ全体のラウンドトリップである場合 [asp.net 用語の「ポストバック」]
この話には 2 つの側面があります。
AJAX は一般に、クライアントの観点からパフォーマンスを向上させます。ページ全体をロードするのではなく、少量のデータが必要なときにサーバーから要求されます。HTML ページが多くの依存ファイル (画像、css、javascript など、それぞれがサーバー (またはキャッシュ) からのヒットを必要とする) を参照することが多いことを考えると、AJAX の賢明な使用によるクライアントのパフォーマンスは驚くべきものになる可能性があります。
サーバー側では、管理する接続がさらに多くなることが問題になります。特にブラウザ内チャットなどのアプリケーションのポーリングは、ブラウザがサーバーにすばやくアクセスするようになったため、サーバーの負荷を実際に増加させ始める可能性があります。典型的な動的アプリケーション (静的ファイルからではなくコードによって応答が生成されるアプリケーション) では、問題が発生する可能性がありますが、一般的には、要求の複雑さがはるかに低いという事実によってバランスが取れています (繰り返しになりますが、ページ全体を生成するのではなく、ページの小さなサブセットを生成します) したがって、いずれの場合でも、プラットフォームはおそらくより高いスループットを得ることができます。
パフォーマンスの問題の正確な結果は、サーバー、プラットフォーム、フレームワーク、その時点での一般的な気候条件など、さまざまな要因によって異なります。
私の究極のアドバイスは、優れたユーザー エクスペリエンスの作成、インテリジェントな開発、できるだけ多くの指標の収集、必要に応じて最適化することに集中することです。
AJAX自体(非同期リクエスト).一般的にはありません。
ただし、豊富な JavaScript とマークアップがあり、xmlhttprequests を介して大量のデータを転送する場合は、パフォーマンス ヒットが見られます。それは、ウェブサイトをどのように機能させたいかによって異なります。
正確には何のパフォーマンスですか?ユーザーエクスペリエンスの観点からアプリケーションのパフォーマンスを意味していると仮定します。
Ajax が最も優れていると思われるのは、必要なときにのみネットワーク トラフィックを発生させることです。すばらしい Web ページを 1 回のヒットでダウンロードするのではなく、必要なものだけをできるだけ迅速にダウンロードします。
その後、さらに情報が必要な場合は、ネットワークから情報を取得します。
これは、未使用のものはダウンロードされないことを意味します (もちろん、適切に設計すれば、他の環境と同様に、悪いコードを Ajax でも作成できます)。
私は、データ転送用の Ajax メソッドと、きれいなインターフェイス用の jQuery などのクライアント側ライブラリを混在させることを好みます。
状況によっては、AJAX にパフォーマンスのオーバーヘッドが生じることもあれば、AJAX を使用しない同等の機能を持つ Web サイトよりもパフォーマンスが実際に優れていることもあります。
AJAX を過度に使用して、大量の意味のないリクエストでサーバーを過負荷にするのは非常に簡単で、クライアントの CPU に負担をかけることもあります。逆に、AJAX を使用して、リクエストごとにページ全体を配信するのではなく、HTML やその他のコードの一部を配信することもできます。これにより、少なくともサーバーの負担が軽減されます。
Ajax は単なる通常の HTTP リクエストであるため、サーバーがこれらのリクエストを処理できる限り、問題はありません。Ajax の利点は、ユーザーが操作するたびにページをリロードして再描画する必要がないため、ユーザーが認識するパフォーマンスが高速であることです。
スケーラビリティが懸念される場合は、ファームに Web サーバーを追加してシステムを水平方向にスケーリングすることも検討していると思います。とにかく、Ajax 以外の Web アプリでも同じことが言えます。
AJAX は、他のテクノロジと同様に、状況や実装方法によって、良いものにも悪いものにもなり得ます。非同期プロセスが特に必要な場合は、使用するのに適したツールです。ただし、無責任に使用すると、問題が発生する可能性があります。使用する場合は、手間のかかる作業のほとんどを行う優れたフレームワークを見つけ、AJAX のいくつかの欠点に注意してください... http://learningremix.net/w2007integ/vangoori/2007/01/the_downsides_of_ajax. shtml
ここにある他のかなりの数の投稿に同意します。賢明な方法で使用している場合 (つまり、30 秒ごとに ajax を使用していない場合) は問題ありません。私は自分の Web サイトで ajax を使用しており (js を使用しないバージョンもあります)、クライアントの観点から見ると、ajax バージョンはほぼ同等の速度から 4 倍の速度でロードされます。それはすべて、Web サイトのデザイン (グラフィックやその他のコンテンツ) と更新内容によって異なります。
欠点は、いくつかのフレームワークをロードする必要があるため (私のように独自に作成した場合でも)、最初のページのロードまたは完全な更新が少し遅くなり、処理負荷が少し増加することです。 . しかし、それは ajax によって生産性が向上したため、ユーザーはより多くの要求/更新を行うことができるからです。
サイトがビジー状態の場合、ファーム内にいる場合を除き、最終的にはサーバーが停止します。サイト自体に関しては、そうすべきではありません。