2

Web サイトがページの処理と読み込みに 10 秒以上かかっている場合、Internet Explorerconnection timeout. ユーザーは、レジストリの既定値をより高い値に設定することで、これを防ぐことができます。

しかし、クライアントにこれを行うように言うことはできません。そもそもこれが起こらないようにするにはどうすればよいですか

私は常に a を使用しbufferてフラッシュしないことを学びました。これにより、データの計算が遅くなります。これに関するもう 1 つの問題は、すべての計算が最初に実行されて に入れられ、multidimensional array最終的に にポストされることresponse.writeです。これについて何かできるとは思いbuffer flushませんか?

4

1 に答える 1

2

バッファフラッシュがこれについて何かできるとは思いませんか?

はい、次のことができます。

サーバーが応答しない場合の Internet Explorer エラー「接続がタイムアウトしました」 :

Internet Explorer は、サーバーがデータを返すのにタイムアウト制限を課します。デフォルトのタイムアウト制限は次のとおりです。 Internet Explorer 5 ~ 8: 60 分

この質問 で説明されているように、あなたが参照しているタイムアウトは、別のアプリケーションによって誤って設定されている可能性があります。

ページが数分以内に返されない場合、多くのユーザーは問題が発生したと認識し、プロセスを停止します。したがって、ユーザーが長時間待たなくて済むように、約 5 分以内にデータを返すようにサーバー プロセスを設計する必要があります。

KB 記事には次のようにも記載されています。

通常、長いプロセスをより小さな部分に分割できます。または、サーバーはステータス データを返して、プロセスについてユーザーに更新することができます。さらに、メッセージベースまたは非同期のアプローチを持つ長いサーバー プロセスを作成して、ジョブが送信された後すぐにユーザーに戻り、長いプロセスが終了した後にユーザーに通知することができます。

したがって、データをクライアントにフラッシュする必要があります。これにより、サーバーがまだ生きていることがわかります。

私は常にバッファを使用してフラッシュしないことを学びました。これにより、データの計算が遅くなります。

このような主張のソースを示してください。もちろん、計算は遅くなりますが、ほとんどの場合、それほど大きくはありません。

KB記事で提案されているアプローチが気に入っています。長時間実行される操作をキューに入れている間、サーバーがすぐに戻るようにします。その後、クライアントは操作の進行状況についてポーリングできるため、タイムアウトしません。

于 2012-11-08T11:54:02.713 に答える