【发布时间】:2017-02-28 16:20:26
【问题描述】:
我是 JavaScript 和 php 的新手,所以我有一个问题,是否有办法在浏览器的网站中检测同一会话的多个选项卡或窗口。 在我正在制作的网站上,当用户登录时,布尔(0-1)变量存储在数据库中的用户表中,显示该用户是否已登录。在有人登录并关闭选项卡或浏览器窗口后,数据库再次更新它更改显示用户是否登录的变量。我这样做的方式是调用下面的脚本
$(window).bind("beforeunload",function(){
$.ajax({
url: "logout.php",
async: false
});
})
如果用户关闭窗口或选项卡,logout.php 会更新数据库。我的问题是,如果有人在同一个网站的同一个会话中打开了多个选项卡,并且只关闭其中一个,则会话将保留,而数据库将更新用户不再登录。
已编辑:我不想注销所有打开的选项卡,我只是不想在用户关闭会话的所有选项卡窗口或点击注销按钮之前保持用户仍然在线的数据库。
【问题讨论】:
-
我认为你的想法很糟糕,例如,如果用户关闭他的笔记本电脑或冻结浏览器,卸载将不会运行。我认为最好的办法是更新数据库中的用户“lastclick”时间戳。
-
@esemve 如果用户空闲并且不做任何事情会话正在关闭并且数据库正在更新。这是一个不同的案例,我已经处理好了。
标签: javascript php jquery