我有例子,我需要在用户关闭浏览器窗口时关闭会话。 我试过page_unload()不起作用。 这个例子是:我有父窗口,窗口将从它打开我需要删除会话时,用户关闭子窗口。 请我需要一些帮助。我想检测用户关闭浏览器窗口时?
回答
您可以使用window.onbeforeunload处理程序发送回注销页面。
function CloseSession()
{
location.href = 'SignOut.aspx';
}
window.onbeforeunload = CloseSession;
这是重复的问题..清洁香港在这里
Closing the browser should actually clear the session variables an ASP.net session id
https://stackoverflow.com/questions/920042/kill-server-side-session-on-browser-window-close-closed
不保证onbeforeunload将会触发。 – 2009-11-04 18:03:15
不幸的是,这是不可能的。你可以在网上找到声称他们可以这样做的例子,但它们有时以非常微妙的方式存在缺陷。
没有一致的方式来检测通过JavaScript关闭浏览器。如果您担心挂起的会话太多,请减少服务器上的会话超时。如果你这样做,你也会想通知你的用户他们需要保持活跃状态,以免失去任何工作。
这不是在正常的web http协议中提供的。当浏览器关闭时,没有真正的方法可以确切知道;你只能“排序”知道。你必须拼凑一个丑陋的黑客才能获得任何确定性,即使如此,它必然会在大量边缘案例中失败或导致令人讨厌的副作用。
正常的解决方法是每隔一段时间从浏览器向服务器发送ajax请求以设置一种“心跳”。当心跳停止时,浏览器关闭,因此您终止会话。但是,再次:这是一个可怕的黑客。在这种情况下,主要的问题是,如果服务器和客户端出现不同步或出现javascript错误,并且存在会话永远不会过期的副作用,那么对于失败的心跳信号容易出现误报。
+1:唯一的例外是如果你正在运行某种与服务器不断通信的内联Java(或类似的)applet,并且唯一的原因是因为它在常规的HTML频道之外运行。 HTML不是一个有状态的协议,任何尝试使用JavaScript都是如此的方法是最好的。 – Satanicpuppy 2009-11-04 18:08:26
如果您的客户端脚本发送一个AJAX心跳到你的服务器端应用程序,你可能使用丢失的节拍关闭会话。
你有父窗口的所有子窗口 你需要的onfocus检查子窗口 所以当你的父母得到重点检查,如果孩子出现与否
- 1. 检查浏览器窗口关闭
- 2. 卸载时关闭浏览器窗口
- 3. 检测用户浏览器是否关闭浏览器
- 4. 窗口关闭时检测?
- 5. 在Flex中检测浏览器窗口关闭事件?
- 6. 有没有办法检测浏览器窗口是否关闭?
- 7. 如何检测浏览器窗口/选项卡关闭事件?
- 8. 如何检测浏览器(不是窗口)关闭事件
- 9. 使用asp.net关闭浏览器窗口
- 10. 如何检查用户关闭窗口/浏览器/关闭计算机?
- 11. 当浏览器窗口关闭时自动注销用户 - salesforce
- 12. 当用户关闭窗口或浏览器时,jquery任务
- 13. JSF - 检测用户何时退出浏览器窗口
- 14. javascript/jquery - 用户关闭浏览器时的crossbrowser检测?
- 15. 当浏览器窗口关闭
- 16. driver.quit()不关闭浏览器窗口
- 17. 关闭浏览器窗口javascript for blackberry
- 18. 自动关闭浏览器窗口
- 19. geb spock并关闭浏览器窗口
- 20. Silverlight - 关闭浏览器窗口
- 21. 如何关闭浏览器窗口?
- 22. 关闭浏览器的主窗口
- 23. Dart:如何关闭浏览器窗口?
- 24. 关闭所有浏览器窗口?
- 25. 如何关闭浏览器窗口
- 26. 跨浏览器窗口关闭事件
- 27. Selenium关闭浏览器弹出窗口
- 28. 关闭Vaadin的浏览器窗口
- 29. Flash AS3关闭浏览器窗口
- 30. 调试测试 - 从测试关闭浏览器窗口
复制 http://stackoverflow.com/参考问题/ 920042/kill-server-side-session-on-browser-window-close-closed http://stackoverflow.com/questions/287022/closing-the-browser-should-actually-clear-the-session- variables-an-asp-net-sessio – 2009-11-04 18:03:11