网络编程
位置:首页>> 网络编程>> Asp编程>> asp使用Application来统计在线人数方法

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

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

标签:在线人数,Application

本文介绍了使用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来统计在线人数的方法

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com