バッファフラッシュがこれについて何かできるとは思いませんか?
はい、次のことができます。
サーバーが応答しない場合の Internet Explorer エラー「接続がタイムアウトしました」 :
Internet Explorer は、サーバーがデータを返すのにタイムアウト制限を課します。デフォルトのタイムアウト制限は次のとおりです。 Internet Explorer 5 ~ 8: 60 分
この質問 で説明されているように、あなたが参照しているタイムアウトは、別のアプリケーションによって誤って設定されている可能性があります。
ページが数分以内に返されない場合、多くのユーザーは問題が発生したと認識し、プロセスを停止します。したがって、ユーザーが長時間待たなくて済むように、約 5 分以内にデータを返すようにサーバー プロセスを設計する必要があります。
KB 記事には次のようにも記載されています。
通常、長いプロセスをより小さな部分に分割できます。または、サーバーはステータス データを返して、プロセスについてユーザーに更新することができます。さらに、メッセージベースまたは非同期のアプローチを持つ長いサーバー プロセスを作成して、ジョブが送信された後すぐにユーザーに戻り、長いプロセスが終了した後にユーザーに通知することができます。
したがって、データをクライアントにフラッシュする必要があります。これにより、サーバーがまだ生きていることがわかります。
私は常にバッファを使用してフラッシュしないことを学びました。これにより、データの計算が遅くなります。
このような主張のソースを示してください。もちろん、計算は遅くなりますが、ほとんどの場合、それほど大きくはありません。
KB記事で提案されているアプローチが気に入っています。長時間実行される操作をキューに入れている間、サーバーがすぐに戻るようにします。その後、クライアントは操作の進行状況についてポーリングできるため、タイムアウトしません。