2017-01-11 18 views
4

こんにちはユーザーがブラウザを閉じてデータベースから何かを削除してもどうやって検出できますか? 私はオンラインカウントに使用したいと思っています。なぜなら、ユーザがブラウザを閉じても、彼はまだ「オンライン」になっているからです。ユーザーがブラウザを閉じた場合、データベースからデータを削除する

+1

['JUFFER'](http()を使用して[' .unload() '](https://api.jquery.com/unload/) ://jquery.com/)ライブラリ。次に、ページがアンロードされたとき*あなたは['Ajax'](http://api.jquery.com/jQuery.ajax/)リクエストを送ります。 **注**:SOは**無料*コーディングサービスではありません! – Nytrix

+0

[this](http://stackoverflow.com/questions/11104205/php-how-to-detect-is-a-session-id-is-dead-or-alive) は役に立ちましたか? – haelmic

答えて

2

これにはイベントがあります。ユーザーが実際のタブを閉じると、この関数が実行されます。

window.onbeforeunload = function() { 
    //make an ajax call here and modify your db 
} 
+1

それは私が探していたものです!ありがとうございました! –

-1
$(window).unload(function() { 
    // call your ajax function for deleting database. 
}); 

あなたはjqueryのアンロードを使用することができます。ユーザーがブラウザを閉じようとすると、関数が読み込まれます。

1

"onunload" vs "onbeforeunload"イベントは正解ですが、さらにAJAX呼び出しをPHPファイルに送信する必要があります。

window.onbeforeunload = function() { 
    jQuery.ajax({url:"http://localhost:8888/do_somethink_in_db.php?", async:false}); 
} 

OR

$(window).unload(function() { 
    jQuery.ajax({url:"http://localhost:8888/do_somethink_in_db.php?", async:false}) 
}); 

注:しかし、電源はユーザPCでオフになっているときに、このイベントは動作しないことができます。しかし、nodejsサーバーを使用する場合は、ユーザーがオンラインであるかオンラインであるかを検出できます。 socket.io(library nodejs)サーバーでハートビートをチェックする

関連する問題