[转]如何捕捉WEB窗体关闭事件

原帖地址: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秒刷一次!那可正的象实时一样了!

posted @ 2011-03-16 08:47 TNTZWC 阅读(...) 评论(...) 编辑 收藏