手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net下判断用户什么时候离开,以什么方式离开
asp.net下判断用户什么时候离开,以什么方式离开
摘要:站点用户统计是每一个站点比有得功能,但是很少有人实现在线用户统计得绝对精确或者说是相对精确,基于Web得原理,服务器不会主动知道用户通过关闭...

站点用户统计是每一个站点比有得功能,但是很少有人实现在线用户统计得绝对精确或者说是相对精确,基于Web得原理,服务器不会主动知道用户通过关闭浏览器离开站点,这时候只能依靠服务器端变量Session得过期来判断用户是否离开,但用户浏览器是可以知道自己何时关闭得,代码也非常简单

如下:

functionbody_onunload()

{

if(window.event.clientX<0)

{

alert('thebroswerisclosing...');

}

else

{

alert('theuserisrefreshingornavigatingaway...);

}

}

以上代码就会判断用户是关闭浏览器还是刷新或者导航到其他页面了!

---------------------------------------------------------------------------------------------------

下午的时候,用代码测试了一下,主要是利用上面的js函数,结合ajax技术,由于对ajax技术了解的不是很透彻,前后尝试了三次。

现将尝试结果与大家分享,大家也多给点意见

首先我尝试了在ajax方法中访问Application,企图用Application变量来记录在线人数。尝试代码:

[AjaxPro.AjaxMethod]

publicintLogoff()

{

Application["onlineCount"]=Convert.ToInt32(Application["onlineCount"])-1;

returnConvert.ToInt32(Application["onlineCount"]);

}

尝试失败!估计是ajax不能访问应用程序的静态变量和Application变量。第一次使用AjaxPro不知道如何设置可以访问Session,以前使用的是ajax.dll,设置成可以读写Session,尝试结果可能发生改变!

第二种我尝试了用文本文件记录在线人数,仍然失败!

第三中,采用数据库!尝试成功。

代码如下:

[AjaxPro.AjaxMethod]

publicintLogoff()

{

SqlConnectionconn=newSqlConnection("server=.;database=test;uid=sa;pwd=123");

SqlCommandcmd=newSqlCommand("updateOnlineCountsetnum=num-1",conn);

try

{

conn.Open();

cmd.ExecuteNonQuery();

}

catch(Exceptionex)

{

EventLog.WriteEntry(ex.Source,ex.Message);

}

finally

{

conn.Close();

}

cmd=newSqlCommand("selecttop1numfromOnlineCount",conn);

try

{

conn.Open();

returnConvert.ToInt32(cmd.ExecuteScalar());

}

catch(Exceptionex)

{

EventLog.WriteEntry(ex.Source,ex.Message);

}

finally

{

conn.Close();

}

return0;

}

前台页面缩

1<scriptlanguage="javascript">

2<!--

3functionleave()

4{

5alert(window.event.clientX);

6if(window.event.clientX<0)

7{

8WebApplication3.WebForm1.Logoff().value;

9}

10}

11//-->

12</script>

13</HEAD>

14<bodyonunload="leave()">

这样的话,在对安全行和及时性要求比较严格的情矿下,将一个页面设置为主页面,如果该页面关闭,表示用户已经退出。电子邮件系统就可以使用该方法。

【asp.net下判断用户什么时候离开,以什么方式离开】相关文章:

asp.net下Linq To Sql注意事项小结

asp.net 动态生成表格

Asp.net下载功能的解决方案代码

asp.net下实现支持文件分块多点异步上传的 Web Services

asp.net下出现其中的组件“访问被拒绝”的解决方法

ASP.Net下载大文件的实现方法

asp.net简化接收参数值的函数

asp.net中包含文件的代码及使用方法

asp.net页面与页面之间传参数值方法

asp.net中IDataParameter调用存储过程的实现方法

精品推荐
分类导航