Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测到用户关闭选项卡或离开站点_Javascript_Login - Fatal编程技术网

Javascript 检测到用户关闭选项卡或离开站点

Javascript 检测到用户关闭选项卡或离开站点,javascript,login,Javascript,Login,我想知道用户何时离开网站,这样我就可以更新数据库中的一个字段(特别是last\u visit字段,以便确定每个用户的未读项目)。然而,我不知道如何管理这样一个事实:有时,用户会打开站点的几个选项卡,因此我无法可靠地使用onbeforeunload来实现这一目标 理想情况下,只有当站点只有一个打开的选项卡时,我才能更新此字段 另一方面,也许我可以通过简单地使用一个表来记录几天内读取的项目,并假设默认情况下读取的线程比这些线程旧,从而获得更多的功能 你觉得怎么样 关于我所能想到的就是使用cookie

我想知道用户何时离开网站,这样我就可以更新数据库中的一个字段(特别是
last\u visit
字段,以便确定每个用户的未读项目)。然而,我不知道如何管理这样一个事实:有时,用户会打开站点的几个选项卡,因此我无法可靠地使用
onbeforeunload
来实现这一目标

理想情况下,只有当站点只有一个打开的选项卡时,我才能更新此字段

另一方面,也许我可以通过简单地使用一个表来记录几天内读取的项目,并假设默认情况下读取的线程比这些线程旧,从而获得更多的功能

你觉得怎么样


关于

我所能想到的就是使用cookie或本地存储来更新他们在每次页面加载时查看您网站的时间。这样,一旦他们关闭网站打开的所有选项卡,cookie/本地存储条目将不会更新,您可以稍后在它们返回时访问该值

因此,请在每次加载页面时运行此命令:

window.localStorage.setItem('lastVisit',Date.now);
要抓住它:

var lastVisit = window.localStorage.getItem('lastVisit');

我所能想到的就是使用cookie或本地存储来更新他们在每次页面加载时查看您的站点的时间。这样,一旦他们关闭网站打开的所有选项卡,cookie/本地存储条目将不会更新,您可以稍后在它们返回时访问该值

因此,请在每次加载页面时运行此命令:

window.localStorage.setItem('lastVisit',Date.now);
要抓住它:

var lastVisit = window.localStorage.getItem('lastVisit');

当用户打开多个选项卡/浏览器时,为什么不考虑在卸载前找到一个解决方法?您只需保留用户已打开的选项卡计数器,在卸载前更新它,如果更新后计数器为0,则更新上次访问时间。简单。是吗?当用户打开多个选项卡/浏览器时,为什么不考虑在卸载前找到一个解决方法?您只需保留用户已打开的选项卡计数器,在卸载前更新它,如果更新后计数器为0,则更新上次访问时间。简单。不是吗?