CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

求网站用用户列表代码?(UP 有分)

楼主vzxq(灵感人)2004-08-02 13:59:46 在 .NET技术 / ASP.NET 提问

求网站用用户列表代码?  
  要求能判断用户是否用关闭浏览器来离开网站(有些代码太简单,不能同步)  
   
  邮件:  
    vzxq@sohu.com  
  问题点数:100、回复次数:42Top

1 楼vzxq(灵感人)回复于 2004-08-02 14:41:24 得分 0

来个人看看啊!Top

2 楼Raimond(麦克老狼)回复于 2004-08-02 14:42:32 得分 5

UPTop

3 楼vzxq(灵感人)回复于 2004-08-02 14:50:01 得分 0

helpTop

4 楼goody9807(http://goody9807.cnblogs.com)回复于 2004-08-02 14:50:49 得分 5

 
            统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率。现在,我们就介绍一个简单明了的方法来统计在线用户的多少,该方法的特点就是充分的利用了ASP.NET的特点,结合global.asax文件,用Application和Session巧妙的实现在线用户的统计,由于程序中只用到一个Application,所以,程序占用系统资源几乎可以忽略不及,当然,这也是网站管理者最关心的问题之一。    
         
        一、用户显示页面的使用    
         
        首先,我们来看看怎样现实当前网站的访问用户数量,程序代码如下:    
         
         
      <%@   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")减一。这样,就很巧妙的实现了在线用户的统计。Top

5 楼bccu(风雨中人)回复于 2004-08-02 14:53:57 得分 5

upTop

6 楼vzxq(灵感人)回复于 2004-08-02 14:59:04 得分 0

goody9807()    
  谢谢!你所说的用户数量统计我早已经实现   了。用户列表没有实现!Top

7 楼zedan(kk)回复于 2004-08-02 15:02:02 得分 5

顶,  
  学习!!!Top

8 楼huaisha83(怀)回复于 2004-08-02 15:03:04 得分 5

upTop

9 楼pgwron2004(小猪小猪我爱你)回复于 2004-08-02 15:04:58 得分 5

顶,学习学习再学习!Top

10 楼nicemood(冰度咖啡)回复于 2004-08-02 15:13:26 得分 0

顶,用户列表Top

11 楼Jasonchen82(梦回光辉岁月)回复于 2004-08-02 15:16:18 得分 5

来晚了。Top

12 楼vzxq(灵感人)回复于 2004-08-02 15:23:40 得分 0

有没有高手啊!Top

13 楼hnsmxzb(飞翔鸟)回复于 2004-08-02 15:29:38 得分 5

关注Top

14 楼zooo(其实我是个程序员!)回复于 2004-08-02 15:35:15 得分 5

顶  
  我也只会用asp的方法!Top

15 楼cc65yecunjian(建)回复于 2004-08-02 15:37:05 得分 0

UPTop

16 楼zooo(其实我是个程序员!)回复于 2004-08-02 15:43:01 得分 5

goody9807()    
  鄙视你!  
  copy我也会  
  你用用脑子看看人家问的什么!  
  带星就可以随便整些垃圾出来!  
  我穿一个绿裤衩的鄙视你两个星的!Top

17 楼Gzipis(藤原拓海(Fujiwara Takum)回复于 2004-08-02 15:57:22 得分 5

近来学习学习~!Top

18 楼anythingbutgirl(孔曰成仁)回复于 2004-08-02 16:00:32 得分 5

学习Top

19 楼flower16(十六)回复于 2004-08-02 16:12:50 得分 2

学习Top

20 楼vzxq(灵感人)回复于 2004-08-02 16:45:23 得分 0

大家来帮帮忙!Top

21 楼zcl7919(跑不了)回复于 2004-08-02 16:51:55 得分 3

up!!!Top

22 楼lookydd(苦苦咖啡)回复于 2004-08-02 17:09:06 得分 2

我来帮你顶!  
  UP。。。Top

23 楼tailer88(水)回复于 2004-08-02 17:16:16 得分 5

顶!  
  可我不太会用  
  楼主,不好意思  
  学习~Top

24 楼hnshuer(舒尔)回复于 2004-08-02 17:23:48 得分 2

upTop

25 楼owenbeckham()回复于 2004-08-02 17:27:39 得分 5

顶!  
  可我不太会用  
  楼主,不好意思  
  学习~  
  顶!  
  可我不太会用  
  楼主,不好意思  
  学习~  
  Top

26 楼yidao(一刀)回复于 2004-08-02 17:44:09 得分 2

效果一样嘛,建个在线用户表,添用户数量的时候,同时添加用户名称就可以了。  
   
  反之亦然。Top

27 楼yipiaoqingshui(一瓢清水)回复于 2004-08-02 17:52:29 得分 5

asp中是添加数据.建一个在线用户表.不是很容易了?Top

28 楼vzxq(灵感人)回复于 2004-08-03 10:27:16 得分 0

思路   明白,不知道如何具体实现!(已经实现了简单的功能)  
  高手来!Top

29 楼vzxq(灵感人)回复于 2004-08-03 13:09:01 得分 0

大家帮忙UPTop

30 楼jason5468()回复于 2004-08-03 14:52:41 得分 2

UP!Top

31 楼pgwron(情伤无痕)回复于 2004-08-03 14:58:51 得分 0

能力有限,一边学习,一边拿分Top

32 楼vzxq(灵感人)回复于 2004-08-05 13:23:45 得分 0

主要是如何判断用户是否离开。Top

33 楼casual12(想做狂人)回复于 2004-08-05 13:39:50 得分 2

TO   zooo(其实我是个程序员!):  
   
    呵呵!有意思!Top

34 楼casual12(想做狂人)回复于 2004-08-05 13:41:47 得分 2

gzTop

35 楼binny0532(苏打水)回复于 2004-08-05 13:46:18 得分 2

upTop

36 楼cat_hsfz(我的新Blog在http://cathsfz.cnblogs.com)回复于 2004-08-05 15:38:39 得分 2

没有办法保证知道用户是否关闭浏览器了!  
   
  因为http是无状态、非连续连接,用户获取了Response之后干什么,没有任何“义务”向你汇报。所以只能在用户不再请求n分钟或当作离开,但不能有100%获取用户是否已关闭浏览器的办法。Top

37 楼vzxq(灵感人)回复于 2004-08-09 08:36:05 得分 0

没有什么好的办法了吗?  
  有没有高手来啊!Top

38 楼uno(钢盅郭子)回复于 2004-08-09 08:55:01 得分 2

写一个客户端的控件(ActiveX)  
  由它来管客户端  
  希望你的客户端同意安装你的控件:PTop

39 楼vzxq(灵感人)回复于 2004-08-09 08:57:34 得分 0

楼上的高手,亲人!有代码吗?  
  msn   留一下也行!Top

40 楼jianyi0115(随意)回复于 2004-08-09 09:07:29 得分 2

Global.asax中写如下代码:  
  protected   void   Session_Start(Object   sender,   EventArgs   e)  
  {  
  //Session["user"]   =   "jianyi";  
  Application.Lock();  
  Application["visitorCount"]   =   1+   (int)Application["visitorCount"]   ;  
  Application.UnLock();  
   
  if(   (bool)Application["trackVisitorInfo"]   )  
  {  
  DataTable   visitorInfoTable   =   createXmlDB.createVisitorInfoTable();  
  DataRow   row   =   visitorInfoTable.NewRow();  
   
  row["sessionID"]   =   Session.SessionID;  
   
  row["uName"]   =   "";  
   
  row["time"]   =   DateTime.Now;  
   
  row["IP"]   =   Request.UserHostAddress   ;  
   
  row["language"]   =   Request.UserLanguages[0];  
   
  row["browerType"]   =   Request.Browser.Type;  
   
  row["OSType"]   =   Request.Browser.Platform;  
   
  visitorInfoTable.Rows.Add(   row   );  
   
  }  
   
  }  
  protected   void   Session_End(Object   sender,   EventArgs   e)  
  {  
  ////online   users  
  ///  
  Application.Lock();  
  if(   Session["user"]   !=   null   )  
  {  
  DataTable   onUserTable   =   (DataTable)Application["onUser"];  
  DataRow[]   rows   =   onUserTable.Select("uName='"   +   Session["user"].ToString()   +   "'");  
   
  if(   rows.Length   >   0   )  
  {  
  rows[0].Delete();  
  Application["onUserCount"]   =     (int)Application["onUserCount"]   -   1;  
  }  
  }  
   
  Application["visitorCount"]   =   (int)Application["visitorCount"]   -   1   ;  
   
  Application.UnLock();  
   
   
  ////  
  ///  
  if(   (bool)Application["trackVisitorInof"]   )  
  {  
  DataTable   visitorInfoTable   =   createXmlDB.createVisitorInfoTable();  
  DataRow[]   rows   =   visitorInfoTable.Select(   "sessionID='"   +   Session.SessionID   +   "'"   );  
   
  if(   rows.Length   >   0   )   rows[0].Delete();  
  }  
   
   
  }  
  --------------以上是一个论坛程序的部分代码,其中createXmlDB.createVisitorInfoTable()是一个静态方法,建立内存中的用户信息表。  
  Top

41 楼vzxq(灵感人)回复于 2004-08-10 08:38:37 得分 0

这部分功能我已经实现了,可是怎么才能正确判断用户离开,如关掉了浏览器。而不是等到Session到期才改变用户列表。Top

42 楼vzxq(灵感人)回复于 2004-08-10 14:09:55 得分 0

各位有做过的吗?  
  再不行就结了Top

相关问题

  • 求一段"用户在线列表"代码~~~
  • 求js的树型列表代码
  • 谁有论坛在线用户列表的代码?拿出来给我看看!要直接能用的!谢谢了!
  • 用户登陆代码
  • 用户注册代码
  • 在注册网站中,用户忘记密码,自动把该用户的密码寄到用户的邮箱的代码怎么写??
  • 用class wizard映射列表控件的LVN_ITEMCHANGED通知消息,就可以跟踪用户对列表项的选择。这个东东是怎么跟踪的?加了代码后并没有什么改变啊
  • 寻找网站源代码
  • 求.net源代码网站
  • ASP.net 的网站源代码

关键词

  • c#
  • 用户
  • 代码
  • application
  • 网站
  • 页面
  • 文件
  • 浏览器
  • eventargs e
  • 程序

得分解答快速导航

  • 帖主:vzxq
  • Raimond
  • goody9807
  • bccu
  • zedan
  • huaisha83
  • pgwron2004
  • Jasonchen82
  • hnsmxzb
  • zooo
  • zooo
  • Gzipis
  • anythingbutgirl
  • flower16
  • zcl7919
  • lookydd
  • tailer88
  • hnshuer
  • owenbeckham
  • yidao
  • yipiaoqingshui
  • jason5468
  • casual12
  • casual12
  • binny0532
  • cat_hsfz
  • uno
  • jianyi0115

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo