1

ユーザーの操作時にサーバーに非同期要求を行うインタラクティブな Web ページがあります (画像、データの読み込みなど)。

最終段階として、サーバーがビジー状態になったり、ネットワークの輻輳が発生してリクエストが満たされない状況を適切に処理するために、JavaScript コードを実装しています。

開発中は、サーバーとクライアント (ブラウザー) の両方が開発マシン (localhost) で実行されます。

コードをテストするには、ローカルの開発マシンでこれらの状況をシミュレートする必要があります。

「サービスを利用できません」という応答を簡単にシミュレートできます。

しかし、「まったく応答がない」ことをどのようにシミュレートできますか?

配置しています

sleep(3600);

シミュレートphpする必要があるものを達成するのに十分なリクエストが行われたときに実行されるのですか?

それとも、何かがまだブラウザに戻ってきますか?

サーバーの可用性が低い状況でブラウザー側のコードをテストするより良い方法はありますか?

編集

1 つのオプションは、 Daveの回答で提案されているように、localhost で実行されているサーバーをシャットダウンすることです。

可能であれば、それを避けることをお勧めします。

いくつかの要求を逃して、他のいくつかを満たすことができるようにしたいと思います.

その背後にある考え方は、ブラウザーで実行されているクライアント側の JavaScript コードが、失敗した要求を再試行するというものです。

サーバーは 1 つの要求の使用不可をシミュレートし、クライアントは再試行し、サーバーは応答を返します...

4

1 に答える 1

1

これらに遭遇する唯一の方法は、非同期リクエストの JavaScript が、プライマリ ページをプッシュするサーバー以外のサーバーからデータ/ファイルを呼び出していた場合です。たとえば、Apache のインスタンスを 1 つだけ実行している場合は、ネットワークの輻輳や利用不可に遭遇することはありません。たとえば、プライマリ Web サーバーとして apache を実行し、コンテンツ サーバーとして別のポートで nginx を実行している場合、それをテストするには、コンテンツを提供する nginx を停止するだけです。

ユーザーの観点から Web サーバーがオフラインであるにもかかわらず、クライアントがまだ JavaScript を処理/実行していることをテストしたい場合 (サーバーが最初の読み込み/要求のためにオンラインであると仮定して)、ブラウザーにページを読み込み、停止します。 Web サーバーは、クライアント側でエラーが発生するのを待ちます。もちろん、Web サーバーを再起動してファイルをリロードし、変更後に再テストする必要があります。

于 2014-04-19T19:09:26.887 に答える