原帖地址:http://community.csdn.net/Expert/topic/5030/5030429.xml?temp=1.928347E-02
一直以来用户非正常退出系统 即:用户按右上角的 X 按纽后
服务器端 session 无法销毁! 一直要等到其过期时间到了才销毁 这样通过session进行在线人
数统计就无法准确了!
我今天试了才发现 其实关闭浏览器事件可以捕捉到的 那么我们就可以在关闭事件里调用Session.Abandon();了
(我下面这个例子特别适合页面是框架结构信息管理系统,因为这个样的结构都有一个公用的主框架页面)
废话少说!说正题!
main.aspx
1、<body onbeforeunload="LeaveWin()">
2 <head>之间 加入!
<script language=javascript>
function LeaveWin()
{
//alert("您点击了关闭按纽右上角的");
window.location.href = "../LoginOut.aspx";
}
</script>
LoginOut.aspx
3、LoginOut.aspx 的Page_Load里只有一句话
protected void Page_Load(object sender, EventArgs e)
{
Session.Abandon();
}
以上两个页面完成后 如果不放心 打开你的VS2003 或者 2005 在Session.Abandon();前设置断点开始调试
当关闭了main.aspx 后 程序是可以运行到Session.Abandon();的!!太爽了!
如果再加个 xmlhttp 无刷新请求,变态点 1秒刷一次!那可正的象实时一样了!