首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载  ┆ 端午节祝福 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>NET专区>ASP.NET>怎样在Asp.net中实现当前网站的访问用户数量统计
怎样在Asp.net中实现当前网站的访问用户数量统计
来源: 发布时间:2008-06-28 发布人: 浏览: 人次   字体: [ ]  

  本篇文章让我们来看看怎样在Asp.net中实现当前网站的访问用户数量的统计,程序代码如下:

        <%@ Page Language="c#" debug="true" %> 
  <html> 
  <head> 
  <SCRIPT LANGUAGE="c#" RUNAT="server"> 
  private void Page_Load(object sender, System.EventArgs e) 
  { 
  Visitors.Text = "本站当前有: <b>" + Application["user_sessions"].ToString() + "" + "</b> 位访问者 !"; 
  } 
  <title>在线用户</title> 
  </head> 
  <body> 
  <asp:label id="visitors" runat="server" /><br> 
  </body> 
  </html> 
  可以看出,以上的程序特别简单,就是调用Application。当然,我们不必要专门设计一个页面来显示在线用户数量,在网站的任何页面,我们都可以直接调用Application("user_sessions").ToString()来显示当前用户数量。

  二、global.asax文件实现  

  global.asax文件的作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:

        <script language="c#" runat="Server"> 
  protected void Application_Start(Object sender, EventArgs e) 
  { 
  Application["user_sessions"] = 0; 
  } 
  protected void Session_Start(Object sender, EventArgs e) 
  { 
  Application.Lock(); 
  Application["user_sessions"] = (int)Application["user_sessions"] + 1; 
  Application.Unlock(); 
  } 
  protected void Session_End(Object sender, EventArgs e) 
  { 
  Application.Lock(); 
  Application["user_sessions"] = (int)Application["user_sessions"] - 1; 
  Application.Unlock(); 
  } 
  </script>
   以上代码很容易理解,当网站开始服务的时候(Application开始的时候),程序设置Application["user_sessions"]为零,然后,当用户进入网站(Session开始的时候)的时候,锁定Application,然后,将application("user_sessions")加一,用户退出网站的时候,application("user_sessions")减一。这样,就很巧妙的实现了在线用户的统计。

  三、一点讨论

  以上的统计,简明扼要,程序很容易实现。但是,如果我们仔细考虑,发现该方法有一定的局限,统计出来的在线用户数量可能稍微有点误差。因为我们在以上程序中,是根据用户建立和退出会话(Session)来实现在线人数的加减的,而我们知道,如果用户没有关闭浏览器,而进入另外一个网站,那么,这个会话在一定的时间内是不会结束的,这个时间我们可以通过TimeOut来设置,一般的,我们设置为20分钟。所以,在用户数量统计上面,还是存在一点误差的。

  另外,我们知道,在ASP中,如果用户将浏览器上面的Cookies设置为“禁用”,那么,Session就不能再被传递,显然,这样设置让以上的统计程序无能为力。不过,在ASP.NET中我们有解决方法,在config.web文件中,我们将设置为true就可以了,也就说,不使用Cookies也可以传递Session。这样,我们的程序就可以在不同的访问者环境中顺利运行。


↓下一篇:没有了
相 关 文 章   发布商链接
·基于.Net平台应用程序唯一运行实例...
·ASP.net中上传文件的操作
·使用DataGrid显示来自于数据库的图象
·DataGrid使用心得总结(附大量代码)
·ViewState的工作原理及其示例小解
·asp.net2.0中新增的特殊符号"~"的使...
·让.Net程序脱离.net framework框架运...
·asp.net跳转页面的三种方法比较
·ASP.NET AJAX解决网页打开等待问题...
·ASP.NET中不定级动态菜单的实现祥解
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·在Ie中保存图片时出现"800700...
·asp.net文件上传大小限制的控
·asp.net动态生成txt文本文件...
·asp.net动态生成txt文本文件...
·asp.net实现将Excel文件导入...
·实现多列,带图片的DropDownLi...
·javascript实现TreeView 控件
·ASP.NET配置Word的操作权限
·让FileUpload控件在IE和FireF...
·ASP.NET实现Office文档的分类
·asp.net文件下载显示进度条的
·实例讲解ASP.NET上传大文件的
·如何防止asp.net盗链下载问题
·分析asp.net页面后台执行的流
·asp.net实现的截取字符串函数...
热 门 文 章
·asp.net(C#)上传下载及文件管...
·Asp.Net防止刷新重复提交数据...
·asp.net中Web.Config配置文件...
·图解asp.net如何用excel做报...
·asp.net页面回传与js调用服务...
·asp.net(C#版)实现登录验证码...
·ASP.NET取得物理路径和虚拟路...
·asp.net(c#)生成验证码代码,...
·ASP.net 实现批量数据更新或...
·DataGrid中DropDownList触发S...
·.net中C#代码与javaScript函...
·asp.net中常见的几种日历控件...
·ViewState的工作原理及其示例...
·asp.net可输入的下拉框复合控...
·asp.net实现MSN弹出窗口特效...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .