日期:2014-05-18  浏览次数:20435 次

asp.net 中判断网页被关闭?
怎么用asp.net   判断用户关闭了一个网站的全部页面,也即用户的离线与否?

------解决方案--------------------
判断session
------解决方案--------------------
关闭时:
session.clear();清除session
判断时:
if(session[ "sessionName "]==null||session[ "sessionName "]= " ")
{
//
}
------解决方案--------------------
//关闭窗体之前询问事件
function ShowLeaveMsg()
{
event.returnValue = "请确认已经留下您的联系方式,以便我们联系您\n期待您的再次光临! ";
}
//关闭窗口事件,用户注销
function Leave()
{
Class1.LeaveRoom().value; //ajax离开事件程序
}
------解决方案--------------------
function is_refresh()
{
if(event.clientY <0||event.altKey)
{
//alert( "你关闭了浏览器 ");
exit2();
}
else
{
//alert( '您刷新了页面 ');
}
}
//-->

在 <body id= "h_body " onunload= "is_refresh(); " >
------解决方案--------------------
强行结束IE,你是无能为力的.

一个办法就是用ajax不停往服务器发信息,一旦发现没有信息了,,,那说明断了.
------解决方案--------------------
断电了,那就不能发送信息了,服务器收不到这个异步请求了
那就真不好搞了.....
你数据库里的那个分明是离开的人可是还是显示 '1 '在线.成了孤魂野鬼了!!

QQ也有这个在线人数显示错误的问题,不知道你们注意过没有.
就是,当你不在线的时候,别人发信息给你了,当你在线的时候,发现有人留言给你,然后你读完留言后,那个留言的人却显示在线,不知道要过多久菜会消失,搞的人会产生幻觉.
------解决方案--------------------
protected void Application_End(Object sender, EventArgs e)
{

}
------解决方案--------------------
golbel
protected void Application_End(Object sender, EventArgs e)
{

}

------解决方案--------------------
最准确的方法是在页面放置定时器,定时更新数据库日期字段纪录。超过定时器设置的时间间隔,认为离开。

任何纯服务器端方法和客户端方法都不行

===================================
蒙哥出动了 学刀东西了