首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测包含我的应用程序的最后一个浏览器选项卡正在关闭?

如何检测包含我的应用程序的最后一个浏览器选项卡正在关闭?
EN

Stack Overflow用户
提问于 2011-10-18 10:03:54
回答 1查看 428关注 0票数 2

我的PHP应用程序的菜单上有一个很好的LogOut按钮,但有些人不使用它,他们只是退出了浏览器。

有什么方法可以检测到我是否退出浏览器和/或在打开应用程序的情况下关闭最后一个选项卡?(我意识到它不能处理浏览器崩溃,但它比我现在有的要好&涵盖了99%的情况)。

我明白我不能使用JavaScript,因为DOM不会让我的JS知道其他的浏览器标签和窗口。

我使用了基于计时器的解决方案,但是一个用户将超时设置为999999分钟,同时将用户数量设置为1,然后关闭浏览器并将自己锁在外面。

但是,另一种方法呢?从横向来考虑,伙计们。当用户使用我的应用程序中的页面打开新选项卡时,我是否可以推送cookie?然后在用户想要关闭选项卡时删除cookie?并检查我是否正在撤回最后一个cookie,并通知服务器将其视为注销?

如果不是cookies,还有其他方法吗?(在页面打开和关闭时使用Ajax,服务器可以确定最后一个选项卡是否已关闭?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-18 10:45:23

如何捕获web页面的unload事件,以便在卸载时使用ajax调用服务器上的脚本。然后,此脚本将存储浏览器调用它的时间。

如果在20秒内,浏览器访问了另一个使用相同会话的页面,这将意味着用户正在浏览您的站点。然后,您就可以安全地取消从ajax调用中存储的时间。

在服务器端,有一个每分钟运行一次的cron作业(如果您担心资源问题,每分钟运行一次),该作业检查是否有任何会话设置了卸载时间,以及卸载时间是否大于25秒。如果是这样,则意味着用户已关闭浏览器、选项卡或已从您的应用程序导航离开。然后,它应该被保存,以便为浏览器进行任何清理或注销。

您可能需要根据互联网/服务器的速度以及用户导航时页面刷新的速度来调整时间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7801671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档