繁体   English   中英

关闭浏览器上的Session_End代码

[英]Session_End code on browser close

我有一个方法需要在Session_end上运行。 当用户关闭浏览器时,有什么方法可以确保代码运行? 这可能是一个双重任务。 我看到一个响应调用ajax卸载或其他东西,但我不希望每次用户导航离开页面时触发,就在他们关闭浏览器时。

谢谢,〜ck

简单回答:您无法控制用户的浏览器。 您提到的AJAX解决方案是您可以实现的最接近的解决方案(没有插件/自定义客户端。)想象一下,每次打开和关闭浏览器窗口时,某些网站都可以跟踪。 你认为这不是隐私问题吗?

真相在于HTTP的无状态特性。 一旦完成将响应发送到客户端,Web服务器就不在了。 之后,您可以依赖的是客户端脚本(仅在客户端需要时执行;并且可以轻松选择不运行脚本。)

Session_end不可靠。 无论你做什么。

Session_end仅在使用进程内会话时触发。 如果您使用的是会话状态服务器或SQL会话,则不会触发session_end。

在进程会话中使用时,session_end仅在会话中存储了某些内容时才会触发。 如果您不使用会话,session_end将永远不会触发。

如果您正在使用会话并且用户关闭浏览器,则会在用户会话超时时触发session_end。 虽然它将具有与原始会话相同的一些设置,但此事件不会绑定到浏览器,因为它是工作进程检测会话超时并触发session_end进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM