Javascript 当用户关闭浏览器时,会话关闭时,我是否可以立即将信息打印到数据库?

Javascript 当用户关闭浏览器时,会话关闭时,我是否可以立即将信息打印到数据库?,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我有一个用php开发的项目。当用户注销时,查询将在MYSQL数据库上运行,例如:status='offline'。但我也希望在用户关闭浏览器时执行此操作。例如,当用户的计算机突然关闭时,当用户与服务器断开连接时,我想立即更新MYSQL数据库中的查询,例如status='offline'。为了说明这一点,你正在通过facebook给某人发短信。另一个人的电脑突然关机,1分钟后,他在对话的顶端离线写作。我想做这样的事情,我尝试过各种方法,但都失败了。我是PHP新手,您能详细帮助我吗?一个可能的解决方

我有一个用php开发的项目。当用户注销时,查询将在MYSQL数据库上运行,例如:status='offline'。但我也希望在用户关闭浏览器时执行此操作。例如,当用户的计算机突然关闭时,当用户与服务器断开连接时,我想立即更新MYSQL数据库中的查询,例如status='offline'。为了说明这一点,你正在通过facebook给某人发短信。另一个人的电脑突然关机,1分钟后,他在对话的顶端离线写作。我想做这样的事情,我尝试过各种方法,但都失败了。我是PHP新手,您能详细帮助我吗?

一个可能的解决方案可能是更新数据库中的某些字段,以节省最近用户的活动时间。只需在客户机的每个请求上更新此字段即可。 在上次更新后,在X分钟内没有收到更新的情况下,您可以将用户视为“脱机”。p>
您还可以添加一些客户端代码,偶尔发送后台“保持活动”请求,以通知服务器客户端仍然存在。

为什么在关闭浏览器而不是窗口或他注销时要这样做?仅使用PHP无法做到这一点,PHP是一种服务器端语言,这意味着它无法真正知道用户何时处于活动状态。制作一些JavaScript,每分钟用当前时间戳更新数据库中的一个单元格,如果时间戳超过一分钟,您就知道用户不在线。你可以更进一步,假设你有一些JavaScript函数,每60秒更新一个单元格,在这个函数中,你可以在更新单元格之前检查用户是否有任何活动(移动鼠标等)。如果用户在关闭浏览器之前更改鼠标手势、键盘手势或页面,它将显示为联机。如果用户在执行这些操作后立即关闭浏览器怎么办?那么就不能更新JavaScript了。