更新用户是否在线?注销用户的话有三种情况:1.点击退出,2.会话超时,3.关闭浏览器
最主要的问题是关闭浏览器的时候如何更新用户在线列表
网上流传的方法是不停的ajax异步发送请求,当不再请求的时候就可以判断用户已经关闭浏览器
var x=0;
function myRefresh()
{
var httpRequest = new ActiveXObject("microsoft.xmlhttp");
httpRequest.open("GET", "test.aspx", false);
httpRequest.send(null);
x++;
if(x<60) //60次,也就是Session真正的过期时间是30分钟
{
setTimeout("myRefresh()",30*1000); //30秒
}
}
myRefresh();
在web.config中设置:<sessionState mode="InProc" timeout="1"></sessionState>