【发布时间】:2014-05-16 10:16:54
【问题描述】:
我想在浏览器关闭时运行一个查询,将在线用户的状态从 1 设置为 0。
我四处寻找,找到了两种方法,想知道哪种方法更好。
方法一:
window.onbeforeunload = function() {
$.ajax({
url: 'logout.php',
type: 'GET',
async: false,
timeout: 4000
});
};
方法二:
$(window).unload(function() {
$.ajax({
url:"logout.php",
type:"POST",
async:false, // browser waits till xhr completed
success:function() {
alert("bye!");
}
});
});
Logout.php
mysql_query("UPDATE `users` SET `status` = '0' WHERE `user_id` = ".$session_user_id."");
感谢所有帮助!
【问题讨论】:
-
我投票给第一个。
-
请记住,在重新加载页面、导航离开页面甚至使用浏览器的前进/后退历史按钮时,都会触发卸载。
-
是的,第一个在这种情况下是合适的。
-
@GoGo 我的意思是第一个适合检查用户是否在线/理想。