用 doUnload 试试,看看下面的讨论
http://codingforums.com/showthread.php?t=37279
如果不行,可以考虑用 AJAX 定时通过 web service 和服务器通讯一下,服务器检测这个心跳消息,如果超时,就认为退出了。
用户登录后,信息是保存到session里面。而session是存储到服务器端的数据。每个浏览器会分配不同的sessionid,因此浏览器管理session都是根据sessionid来的。因此可以设置sessionid。
客户端关闭了最后一个浏览器窗口,浏览器应该会把sessionid清除。当客户端再次向服务器端发出请求的时候,同时会把sessionid传过去,如果sessionid清除了,服务器端就会知道了。
再怎么搞,也无法判断关了电脑情况吧。
ASP中有个Global.asax里面有个
void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
}
使用 js 的setInterval函数 和ajax 更新用户最后在线时间