-1

jQuery.get() を使用してサーバーから小さなデータを取得するスクリプト myScript.js があるとします。また、ping 時間が 1500 ミリ秒とひどいものだとします。jQuery.get を使用すると、ping 時間が効果的に 2 倍の 3000 ミリ秒になりますか?

それとも、ある種の並列処理を可能にする非同期マジックはありますか? 私が質問している理由は、jQuery.get() をかなり自由に使用しており、最適化を検討する必要がある領域であるかどうか疑問に思っているからです。

編集:初期ロード時にすべてのデータをロードし、jQuery get を完全にバイパスするように何らかの方法で再配置できる場合と比較して倍増

4

2 に答える 2

2

jQueryはすべてクライアント側であるため、ping時間は通常サーバーに関連しています。答えはノーです。ping 時間には影響しません。

jQuery.get (または一般的には ajax) を使用するとクライアント側が遅くなる可能性があるかどうかを尋ねる場合、答えは「はい」です。多くの処理をしようとしている場合、JS が多いほど、一般的にクライアントが遅くなります。ほとんどすべてが同じスレッドで実行されるためです。ただし、デフォルトでは、これらの ajax リクエストは非同期であるため、サーバーがレスポンスを返すまで、スレッドは通常アイドル状態になります。

ページを Chrome で開き、開発者ツールを使用してネットワークの使用状況を確認することをお勧めします。これにより、サーバーでの「待機」にかかった時間が正確にわかります。

于 2012-05-27T05:58:24.003 に答える
0

リクエストを分類すると、予想されるレイテンシがわかります。

すべてのTCP接続は、3ウェイハンドシェイクで始まります。

  • SYN(クライアントからサーバー)
  • SYN-ACK(サーバーからクライアント)
  • ACK(クライアントからサーバー)

要求が1つのtcpパケット(〜1500バイト)のサイズに収まる場合、ネットワークフローを最適化するために、ハンドシェイクの最後の部分として送信できます。

応答は、(サイズによっては)1つのパケットで送信される場合もあります。送信されると、接続が維持されない限り、両側で2組のFIN-ACKシーケンスを使用する接続終了が行われます。この時点で、サーバーが最後の応答パケットと一緒にFINを送信できるかどうかは完全にはわかりません。

したがって、最良のシナリオでは、少なくとも2倍のping時間が期待できますが、3〜4倍になる可能性が高くなります。

于 2012-05-27T07:07:22.937 に答える