私の知る限り、ブラウザが閉じているかどうかを実際にテストすることはできません。閉じているウィンドウ(またはタブ)のみをテストできます。もちろんページの更新が行われない限り、ウィンドウまたはタブ内のWebページを閉じることと再度開くことの両方としてカウントされるため、通常はこれで十分です。必要なのは、ブラウザのページ更新ボタンをクリックするためのイベントハンドラですが、そのようなものが存在するかどうかはわかりません。ここに何かがあります:
「このページから移動してもよろしいですか?」を表示する方法変更がコミットされたのはいつですか?
そしてまた
ページ更新イベントハンドラーについて何かを見つけようとして私が遭遇したことの1つは、「ローカルストレージ」を使用するという概念です。アンロード前のハンドラーの一部として、タイムスタンプ付きの小さなデータ項目をローカルストレージに入れることができます。サーバーで一種のタイマーをアクティブにし、その時間が経過するのを待ってからセッションを消去します。ページが読み込まれたら、そのデータ項目のローカルストレージをテストします。存在し、タイムスタンプがごく最近のものである場合は、ページが更新されたことを知っており、サーバーにAJAXメッセージを送信して、まだセッションを消去しないように指示するなど、その知識に基づいて適切な処理を実行できます。