1

私はphpアプリを作成しており、ユーザーのログイン時間とログアウト時間をtxtファイルに記録します。ログインは最も簡単な部分です。ログアウトは少し注意が必要だと思います。ログアウトの選択を選択してユーザーセッションを手動で強制終了すると、何も考えずにログアウト時間を追跡できます。しかし、彼がブラウザのタブまたはウィンドウを閉じたときに何ができますか?jsを使用してwindow.onbeforeunload="foobarA()" window.onunload = "foobarB()"でこれらのイベントを検出し、phpをトリガーしてt​​xtまでの時間をログアウト時間として追跡する必要があると思います。ただし、これはブラウザのウィンドウクローズ効果のみをチェックします。ユーザーがアプリの実行中のタブを閉じてから、ブラウザーを閉じずにインターネットを何時間もプレイまたはサーフィンしていた場合、ログアウト時間を正確に追跡するにはどうすればよいですか?

4

1 に答える 1

2

a) すべてのブラウザーがそれらを処理するわけではなく、b) 異なるブラウザーでは、それらで実行できることについて異なる制限があるため、アンロード イベントに依存することはできません。Websocket を使用して、サーバーからの接続がいつ閉じられるかを監視できます。Websocket をサポートしていないクライアントの場合、AJAX を使用して 5 秒ごとにスクリプトにポストバックできます。過去 5 秒間にリクエストを受信して​​いない場合は、「ログアウト」しています。

于 2013-01-09T23:41:49.080 に答える