asp使用Application来统计在线人数方法

来源:asp之家 时间:2007-08-13 12:43:00 

本文介绍了使用Application来统计访问网站的在线人数的方法,并介绍了使用Application时应该注意的事项。首先讲明白,用ASP不可能完全精确的计算在线人数,我们这里把时间间隔设为5分钟
看一个例子
Global.asa


<SCRIPT LANGUAGE=VBS RUNAT=Server>
    Sub Application_onStart
          Set Application("online")=Server.CreateObject("ADODB.Connection")
          Application("onlinedb")=Server.Mappath("\asp\db\home.mdb")
          '这步是必须的,因为在Session_OnEnd里不能使用Server.MapPath
    End Sub
    Sub Session_OnStart
          Session.Timeout=5 '设置Session的过期时间为5分钟,默认为20分钟
    End Sub
    Sub Session_OnEnd
          Application.Lock '记住对Application对象的所有操作都要先Lock,操作完了,Unlock,防止冲突
          Application("online").ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application("onlinedb")
          Application("online").Open
          Application("online").Execute "Update online Set online=False Where username='" & Session("user") & "'"
          '根据用户名来把数据库中相应表的online字段设为False,相当于表示用户下线
          Application("online").Close
          Application.Unlock
     End Sub
     Sub Application_OnEnd
     Application.Removeall()
     End Sub
</SCRIPT>


在用户登录时



Application.Lock()
Application("online").ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath(Application("home"))
Application("online").Open
Application("online").Execute "Update online Set timein=#"&Date() &" "&Time()&"#, online=True Where username='" & Session("user") & "'"
'把相应用户的online字段设置为True,这样在后面就可以通过SQL查询,得到在线用户
Application("online").Close
Application.UnLock()



显示在线人数


set rs=Server.CreateObject("ADODB.Recordset")
rs.open "select online from online where online=True","数据库连接字符串",1,3
'所有online=True的用户就是当前在线的用户
Response.Write(rs.RecordCount)
rs.close
set rs=nothing
'显示在线人列表就不细说了,给你个SQL吧
rs.open "select username,timein from online where online=True","数据库连接字符串",1,3


username为用户名,timein是用户登录时的时间


给你几个注意事项:
Application_OnStart:在此事件中只有Application和Server对象可以使用,其它对象的使用都会发生错误
Application_OnEnd:在此事件中只有Application和Server对象可以使用,其它对象的使用都会发生错误,不可以使用Server.MapPath方法
Session_OnStart:所有对象都可以使用
Session_OnEnd:在此事件中只有Application,Session和Server对象可以使用,其它对象的使用都会发生错误,不可以使用Server.MapPath方法

相关阅读:

使用IP地址来统计在线人数方法

asp实现通过session来统计在线人数的方法

标签:在线人数,Application
0
投稿

猜你喜欢

  • js验证表单(form)中的单选(radio)值

    2008-03-18 13:23:00
  • 解决 myJSFrame 框架中 Ajax 方法一处明显的内存泄露

    2008-03-09 19:14:00
  • css网页下拉菜单制作方法(4):定位问题

    2007-02-03 11:39:00
  • 通过事务日志解决SQL Server常见四大故障

    2009-03-25 16:06:00
  • sqlserver 数据库连接字符串中的可选项收集

    2011-10-24 19:48:37
  • Web2.0视觉风格进化论 之一

    2007-11-03 19:58:00
  • 如何把一长串数字分位显示?

    2009-11-06 14:01:00
  • SQLServer 跨库查询实现方法

    2012-04-13 12:07:09
  • 浅议Wap网页设计中的锚点链接

    2010-12-17 12:41:00
  • IE7兼容模式与兼容视图

    2010-06-28 18:48:00
  • CSS 的模块化思想

    2009-02-03 12:52:00
  • mysql分表的3种方法

    2011-01-29 16:50:00
  • 快速掌握如何使用SQL Server来过滤数据

    2009-01-15 13:27:00
  • 如何优化下面这段代码?

    2010-01-23 11:30:00
  • mysql出现10061错误解决办法

    2010-07-04 13:36:00
  • 我所理解的网页推广设计的几个要点

    2011-01-25 12:37:00
  • 写给应聘页面重构的同学

    2009-03-18 11:01:00
  • Oracle数据库的空间管理技巧

    2010-07-26 13:16:00
  • Web 标准设计实践:Google 的首页

    2008-10-12 12:14:00
  • 浏览器的字体等宽空格

    2008-08-28 12:25:00
  • asp之家 网络编程 m.aspxhome.com