AJAX在浏览器关闭时运行PHP查询
我想在浏览器关闭时运行一个查询,将联机用户的状态从1设置为0 我四处搜索,找到了两种方法,想知道哪种更好 方法1:AJAX在浏览器关闭时运行PHP查询,php,ajax,Php,Ajax,我想在浏览器关闭时运行一个查询,将联机用户的状态从1设置为0 我四处搜索,找到了两种方法,想知道哪种更好 方法1: window.onbeforeunload = function() { $.ajax({ url: 'logout.php', type: 'GET', async: false, timeout: 4000 }); }; 方法2: $(window).unload(function() { $
window.onbeforeunload = function() {
$.ajax({
url: 'logout.php',
type: 'GET',
async: false,
timeout: 4000
});
};
方法2:
$(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."");
感谢您的帮助 要检查在线用户,您应该使用其他方法,如果他们强制关闭浏览器,您的脚本将无法检测到
要检查在线用户,您应该每5分钟向他们发送一次数据,如果达到数据,则他们在线,否则他们不在线。您应该使您的系统像这样而不是那样。我有一个解决方案,可以使用下面的代码
<script type="text/javascript">
window.onbeforeunload = function() {
$.ajax({
url: URL+param,
type: 'GET',
async: false,
timeout: 10000
});
};
</script>
window.onbeforeunload=函数(){
$.ajax({
url:url+param,
键入:“GET”,
async:false,
超时:10000
});
};
我投票支持第一个。请记住,卸载将在重新加载页面、离开页面或甚至使用浏览器的“向前/向后历史记录”按钮时触发。是的,在这种情况下,第一个按钮是可以使用的。@GoGo我的意思是,第一个适合检查用户是否在线/理想。