如何在ASP实现网站在线人数,当前访问人数的统计,并可把数值写入数据库和可从数据库(SQL)读取

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:59:25
要求能正常实现网站在线人数访问总人数,当前在线人数,可以把数据写入到数据库中保存,即每增加一个在线人数就往数据库写读取数据,然后再把数据写入数据库。

因为原来用global.asa写那个统计人数的代码在实现这个功能时,经常会出现统计人数归零的情况。
我也试过把把数据写入数据库,不过在查看数据库跟踪的详细列表时,发现在整个会话期间,只从数据库读出一次Application的值,当有新页面打开的时候数据没有改变。

这是我以前用来统计的Global.asa代码(数据库连接那部分我去掉了):

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
//连接数据库
ConnStr="Provider=SQLOLEDB.1;Persist Security InFso=true;Data Source=.;Initial Catalog=;User ID=;Password="
'Catalog=;User ID=;Password= 因为是问题,已去掉
Set conn = Server.CreateObject("ADODB.Connection")
conn.commandtimeout=20
conn.open ConnStr
conn.execute("update [CountS] set [id]=[id]+1;")
Application.Lock '在这里读出Application("CountAll")的初始值
'这里设置过初值的,但是还是出现上面的问题
'要求在这里实现数据库的连接,从数据库读出上次访问的总人数
Application.UnLock
End Sub

Sub Session_OnStart

既然已经用了数据库,那为什么还要用
Application呢?

把那段执行update语句的代码放在你的网站首页上就行了。

另外,即使你一定要用Application,也不能在Application_OnStart中去计数,而应该在Session_OnStart中取计数,因为你不知到Application_OnEnd 事件 (web 服务器停止运行)什么时候发生。