需要在浏览器关闭时执行数据库查询

时间:2014-01-03 12:36:51

标签: javascript php ajax browser

我需要在用户关闭浏览器时对数据库执行MySQL查询。我正在开发一个应用程序,当用户登录数据库字段时,lo-gin_status设置为1并且当用户注销他的lo-gin_status时设置为0.但是如果用户登录但不注销他应该关闭他的浏览器该怎么办。

4 个答案:

答案 0 :(得分:3)

您可以尝试使用Javascript执行此操作并检查窗口关闭事件,但是由浏览器决定是否支持。

您可以做的是创建一个表来记录人们访问您的站点时,然后运行一个cron作业来检查他们更改页面后的时间。如果超过X分钟,则将该用户的状态设置为离线。

无论如何都要尝试:

使用window.onunload事件。

https://developer.mozilla.org/en-US/docs/Web/API/window.onunload

您应该能够进行ajax调用以运行要从那里运行的查询

答案 1 :(得分:0)

您可以在卸载js事件时向服务器端发送一些ajax请求。 Look here for details

答案 2 :(得分:0)

准确地说,您正在寻找 .unload() jQuery event

$( window ).unload(function() {
  //call a php function that sets the flag to 0 or whatever you want
});

答案 3 :(得分:0)

你是从错误的观点接近这个。没有100%可靠的方法来判断他是否已登出或关闭浏览器(他也可能只是杀死浏览器或关闭电脑/移动设备)。

相反,将会话数据存储在数据库中并在每次用户对页面执行操作时刷新它,如果在某个时间内没有操作(例如30分钟左右),则只需手动将其注销。