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方法
相关阅读:
0
投稿
猜你喜欢
- 一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时
- 阅读上一篇:什么是名字空间<meta http-equiv="Content-Type" co
- 这是一套适用于JavaScript程序的编码规范。它基于Sun的Java程序编码规范。但进行了大幅度的修改, 因为JavaScript不是J
- SELECT表名=case when a.colorder=1 then d.name else '' end,表说明=ca
- 众所周知,随着数据库体积的日益庞大,其备份文件的大小也水涨船高。虽然说通过差异备份与完全备份配套策略,可以大大的减小SQL Server数据
- 对于一个内容页的文章来说,如果这个文章内容过长或是其中有分类(排行),那么进行分页阅读无疑是最好的选择。如果一个文章内容不涉及分类,比如小说
- 前言 绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer、Share P
- WordPress可以改造成twitter一样的微博网站,但是有一个坏处就是你要么用来做博客要么用来做微博,功能难兼得。相信大家在访问一些知
- 在一开始接触PHP接触MYSQL的时候就听不少人说:“MySQL就跑跑一天几十万IP的小站还可以,要是几百万IP就不行了
- asp正则表达式检测字符串是否是数字及字母。<% '函数:CheckString(strng) '
- 当您使用FILESYSTEMOBJECT(fso)对象获得某个目录下的文件列表的时候,你有没有发现无法控制它们的排序方式,比如按照名字排序,
- 触发器的概念:“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。”(Wikipedia)说得简单一些,它是在一个特殊的数据库事
- 在应用SA-FileUp时,必须确认用户已对目的路径有读、写、删除的权力。在多文件上传中,由于浏览器不支持SIZE= 属性,所以对多文件的情
- 1引言实现磁带备份数据的功能有两方面的困难:首先,SQL Server(以下简称SQL)所提供的数据库的整体备份及恢复功能不能直接满足本系统
- 数据库开发数据库应用,选择一个好的数据库是非常重要的。下面从一些方面比较了SQL Server与Oracle、DB2三种数据库,为你选择数据
- 一般情况下TextArea区输入的文字数量是没有限制的,但是我们可以通过javascript限制表单的文字字数。如下javascript代码
- Dethe Elza (delza@livingcode.org), 高级技术架构师, Blast Radius &n
- 每周的《午间欢乐购》和《周末疯狂购》,已经成为视觉组的固定需求。从开始接触到现在5个月的时间里,思维也和这些小小banner逐渐碰撞出火花。
- 登录页面能访问得到,但当执行下级目录的文件就不行了,浏览器直接跳出以下错误页面: 除些以外没有任何其它有价值的信息,因为此网站在我的电脑上执
- 无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用数据类型有充