0

多くの jQuery AJAX リクエストに依存する Web アプリケーションを開発しています。私の開発環境では、通常、PHP は 300 ミリ秒未満でデータを処理して返します。

一般的で小規模な Web ホスティング セットアップの運用環境では、非同期の jQuery GET 要求に適切なタイムアウトを設定して、クライアントに情報を提供できるようにするために、どのような要素を考慮する必要がありますか?

4

1 に答える 1

1

まず、ブラウザをロックしない非同期リクエストについて話していると思います。

次に、その要求を処理するサーバーのパフォーマンス プロファイルと、要求/応答が成功した場合の応答時間の分布に大きく依存します。

リクエストのタイプまたはサーバーの負荷に応じて、成功したリクエストが数ミリ秒から数分で完了できる場合は、タイムアウトを少なくともリクエストの成功にかかる時間と同じくらい長くすることをお勧めします (ユーザーが正常な要求が完了するまで待機するオプション)。ユーザーがせっかちになるのが心配な場合は、要求がすぐに完了しない場合に 10 秒後にキャンセルまたは停止ボタンを追加して、せっかちなユーザーが救済できるようにしますが、忍耐強いユーザーは完了するのを待つことができます。

一方、サーバーの調査や経験から、リクエストが 15 秒以内に完了しなかった場合、リクエストが正常に完了する可能性はほとんどないことがわかっている場合は、タイムアウトを 15 秒より長く設定しても意味がありません。それ。

第三に、それはまた、ajax 呼び出しがどれほど重要であるか、およびそれがユーザーの操作にどのように適合するかに依存します。オプションのバックグラウンド オペレーション (おそらくオートコンプリート マッチ リクエスト) の場合は、すぐにあきらめて、次のリクエストを将来にスケジュールすることができます。それがユーザーの直接的なアクション ([保存] ボタンなど) である場合は、リクエストを正常に完了させ、より長い時間を与えるように努力する必要があります。

要約すると、次の要因を考慮する必要があります。

  1. ajax リクエストは、バックグラウンド (オートコンプリートなど) または特定のユーザー アクション (保存や読み込みなど) でオプションですか?

  2. サーバーが ajax 応答を成功させるのにかかる最長時間はどれくらいですか? 要求が成功するまで、患者ユーザーが少なくともその時間待機できるようにする必要があります。

  3. せっかちなユーザーに、実行時間の長いリクエストをキャンセルする機能を提供していますか? その場合は、リクエストを長くすることができます。

  4. サーバーの応答性がよくわからない場合は、サーバーによってはそれほど時間がかかる場合があるため、少なくとも 120 秒実行する必要がありますが、せっかちなユーザーに要求を中止して他の仕事に取りかかる機能を提供することを検討する必要があります。 .

于 2012-07-09T02:43:44.653 に答える