站点用户统计是每一个站点比有得功能,但是很少有人实现在线用户统计得绝对精确或者说是相对精确,基于Web得原理,服务器不会主动知道用户通过关闭浏览器离开站点,这时候只能依靠服务器端变量Session得过期来判断用户是否离开,但用户浏览器是可以知道自己何时关闭得,代码也非常简单
如下:
function body_onunload()
{
if(window.event.clientX<0)
{
alert('the broswer is closing...');
}
else
{
alert('the user is refreshing or navigating away...);
}
}
以上代码就会判断用户是关闭浏览器还是刷新或者导航到其他页面了!
---------------------------------------------------------------------------------------------------
下午的时候,用代码测试了一下,主要是利用上面的js函数,结合ajax技术,由于对ajax技术了解的不是很透彻,前后尝试了三次。
现将尝试结果与大家分享,大家也多给点意见
首先我尝试了在ajax方法中访问Application,企图用Application变量来记录在线人数。尝试代码:
[AjaxPro.AjaxMethod]
public int Logoff()
{
Application["onlineCount"]=Convert.ToInt32(Application["onlineCount"])-1;
return Convert.ToInt32(Application["onlineCount"]);
}
尝试失败!估计是ajax不能访问应用程序的静态变量和Application变量。第一次使用AjaxPro不知道如何设置可以访问Session,以前使用的是ajax.dll,设置成可以读写Session,尝试结果可能发生改变!
第二种我尝试了用文本文件记录在线人数,仍然失败!
第三中,采用数据库!尝试成功。
代码如下:
[AjaxPro.AjaxMethod]
public int Logoff()
{
SqlConnection conn = new SqlConnection("server=.;database=test; uid=sa;pwd=123");
SqlCommand cmd = new SqlCommand("update OnlineCount set num=num-1",conn);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
EventLog.WriteEntry(ex.Source,ex.Message);
}
finally
{
conn.Close();
}
cmd = new SqlCommand("select top 1 num from OnlineCount",conn);
try
{
conn.Open();
return Convert.ToInt32(cmd.ExecuteScalar());
}
catch(Exception ex)
{
EventLog.WriteEntry(ex.Source,ex.Message);
}
finally
{
conn.Close();
}
return 0;
}
前台页面缩
1 <script language="javascript">
2<!--
3 function leave()
4 {
5 alert(window.event.clientX);
6 if(window.event.clientX<0)
7 {
8 WebApplication3.WebForm1.Logoff().value;
9 }
10 }
11//-->
12 </script>
13 </HEAD>
14 <body onunload="leave()">
这样的话,在对安全行和及时性要求比较严格的情矿下,将一个页面设置为主页面,如果该页面关闭,表示用户已经退出。电子邮件系统就可以使用该方法。
如下:
function body_onunload()
{
if(window.event.clientX<0)
{
alert('the broswer is closing...');
}
else
{
alert('the user is refreshing or navigating away...);
}
}
以上代码就会判断用户是关闭浏览器还是刷新或者导航到其他页面了!
---------------------------------------------------------------------------------------------------
下午的时候,用代码测试了一下,主要是利用上面的js函数,结合ajax技术,由于对ajax技术了解的不是很透彻,前后尝试了三次。
现将尝试结果与大家分享,大家也多给点意见
首先我尝试了在ajax方法中访问Application,企图用Application变量来记录在线人数。尝试代码:
[AjaxPro.AjaxMethod]
public int Logoff()
{
Application["onlineCount"]=Convert.ToInt32(Application["onlineCount"])-1;
return Convert.ToInt32(Application["onlineCount"]);
}
尝试失败!估计是ajax不能访问应用程序的静态变量和Application变量。第一次使用AjaxPro不知道如何设置可以访问Session,以前使用的是ajax.dll,设置成可以读写Session,尝试结果可能发生改变!
第二种我尝试了用文本文件记录在线人数,仍然失败!
第三中,采用数据库!尝试成功。
代码如下:
[AjaxPro.AjaxMethod]
public int Logoff()
{
SqlConnection conn = new SqlConnection("server=.;database=test; uid=sa;pwd=123");
SqlCommand cmd = new SqlCommand("update OnlineCount set num=num-1",conn);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
EventLog.WriteEntry(ex.Source,ex.Message);
}
finally
{
conn.Close();
}
cmd = new SqlCommand("select top 1 num from OnlineCount",conn);
try
{
conn.Open();
return Convert.ToInt32(cmd.ExecuteScalar());
}
catch(Exception ex)
{
EventLog.WriteEntry(ex.Source,ex.Message);
}
finally
{
conn.Close();
}
return 0;
}
前台页面缩
1 <script language="javascript">
2<!--
3 function leave()
4 {
5 alert(window.event.clientX);
6 if(window.event.clientX<0)
7 {
8 WebApplication3.WebForm1.Logoff().value;
9 }
10 }
11//-->
12 </script>
13 </HEAD>
14 <body onunload="leave()">
这样的话,在对安全行和及时性要求比较严格的情矿下,将一个页面设置为主页面,如果该页面关闭,表示用户已经退出。电子邮件系统就可以使用该方法。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月29日
2024年11月29日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]