如何在ASP实现网站在线人数,当前访问人数的统计,并可把数值写入数据库和可从数据库(SQL)读取 80
要求能正常实现网站在线人数访问总人数,当前在线人数,可以把数据写入到数据库中保存,即每增加一个在线人数就往数据库写读取数据,然后再把数据写入数据库。因为原来用global...
要求能正常实现网站在线人数访问总人数,当前在线人数,可以把数据写入到数据库中保存,即每增加一个在线人数就往数据库写读取数据,然后再把数据写入数据库。
因为原来用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
session.Timeout=20
Application.Lock
Application("Online") = Application("Online") + 1
Application("CountAll") = Application("CountAll") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("Online") = Application("Online") - 1
Application.UnLock
End Sub
Sub Application_OnEnd
Application.Lock
'应该在这里将Application("CountAll")保存到文件中,要求是写入数据库
Application.UnLock
End Sub
</SCRIPT>
谁能帮我优化上面的代码,功能要求如上面所说的,要求给出详细的说明。不要一般网上找的,很多我已经看过了,不实用。如果哪位能帮我解决这个问题,再追加高分奖励。 展开
因为原来用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
session.Timeout=20
Application.Lock
Application("Online") = Application("Online") + 1
Application("CountAll") = Application("CountAll") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("Online") = Application("Online") - 1
Application.UnLock
End Sub
Sub Application_OnEnd
Application.Lock
'应该在这里将Application("CountAll")保存到文件中,要求是写入数据库
Application.UnLock
End Sub
</SCRIPT>
谁能帮我优化上面的代码,功能要求如上面所说的,要求给出详细的说明。不要一般网上找的,很多我已经看过了,不实用。如果哪位能帮我解决这个问题,再追加高分奖励。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询