私の Web アプリは、特定のページを表示するために大量のデータを処理して提供する必要があります。サーバーがまだ処理中である間に、ユーザーがページを閉じたり更新したりすることがあります。これは、サーバーが数分間データを処理し続け、リッスンしていないクライアントにデータを送信することを意味します。
接続が切断されたことを検出して対応することはできますか?
この特定のプロジェクトでは、Django と NginX、または Apache を使用しています。これは、Django 開発サーバーがキャンセルされたリクエストに応答して Broken Pipe 例外を出力するように見えるため、可能であると想定しました。アプリケーションコードがキャッチできる例外を発生させたいと思っています。 JSP でこれができるようです。 node.js hereも同様です。
または、問題のページに unload イベント ハンドラーを登録し、このユーザーからの前の要求をキャンセルするように要求する同期 XHR を実行させ、プロセス間通信を実行してそのようにすることもできます。おそらく、より遅いデータ処理が別のプロセスに渡された場合、応答するプロセスを強制終了することなく、より簡単に識別して強制終了できます...