AJAX在浏览器关闭时运行PHP查询

时间:2014-04-04 08:08:19

标签: php ajax

我想在浏览器关闭时运行查询,设置在线用户'状态从1到0。

我四处寻找,发现了两种方法,想知道什么是更好的。

方法1:

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."");

感谢所有帮助!

2 个答案:

答案 0 :(得分:0)

要检查在线用户,您应该使用其他一些东西,如果他们强行关闭浏览器,您的脚本将无法检测到它。

要检查在线用户,您应该每隔5分钟向他们发送一些数据,如果达到数据,则他们在线,否则他们不是。你应该让你的系统像这样而不是那样。

答案 1 :(得分:0)

我在代码后面有这个用途的解决方案。

SELECT OBJECT_NAME
FROM ALL_OBJECTS 
WHERE OBJECT_TYPE IN ('TABLE')
AND OWNER='owner_name';