Php 我想在mozilla、IE 8.0或Chrome的标签关闭时注销
嗨 如果我关闭选项卡,可能会终止会话(注销)。请让我知道你们是否实施了这个 谢谢,Php 我想在mozilla、IE 8.0或Chrome的标签关闭时注销,php,javascript,html,Php,Javascript,Html,嗨 如果我关闭选项卡,可能会终止会话(注销)。请让我知道你们是否实施了这个 谢谢, Manish使用Javascript onUnload事件调用/ping您的PHP注销页面: $(window).unload(function() { // Send an Ajax request to logout.php }); 但是,Carlos Camderrós是对的:您可能不知道用户是否打开了多个选项卡,因此即使用户关闭了其中一个选项卡,您也有可能将其注销。来自jQuery文档(.unloa
Manish使用Javascript onUnload事件调用/ping您的PHP注销页面:
$(window).unload(function() {
// Send an Ajax request to logout.php
});
但是,Carlos Camderrós是对的:您可能不知道用户是否打开了多个选项卡,因此即使用户关闭了其中一个选项卡,您也有可能将其注销。来自jQuery文档(.unload()是相关浏览器功能的包装):
卸载事件的具体处理方式因浏览器版本而异。例如,某些版本的Firefox在跟随链接时触发事件,但在关闭窗口时不会触发。在实际使用中,应该在所有受支持的浏览器上测试行为,并与专有的beforeunload事件进行对比
换言之,为了使会话可靠,您还需要以另一种方式进行:给会话一个非常短的超时时间,并在每个会话中重复ping服务器以使其保持活动状态。创建会话,但不要将其与cookie一起存储。在他们关闭该选项卡或窗口后,他们将释放该会话。这意味着您必须在每次请求时将会话id从服务器发送到客户端(反之亦然)。或者有不同的解决方案吗?不,那是解决方案。它可能并不漂亮,但它很有效,我倾向于认为Occam的Razor apply就是在这种情况下,最简单的解决方案就是最好的解决方案。你无法控制用户打开了多少选项卡。因此,即使您实现了自己的愿望,也有可能用户打开了两个选项卡,当关闭其中一个选项卡时,您在另一个选项卡上注销了该用户。也在中。