不用Global.asa也能实现统计在线人数吗?(不用实名认证的游戏盒子)新鲜出炉

随心笔谈2年前发布 admin
189 0 0

文章摘要

这篇文章描述了一种使用Visual Basic ASP现代版本实现在线人数统计的方法,主要通过以下步骤实现: 1. **初始化Session和连接**:使用Session对象获取会话ID,并通过连接对象连接到数据库,执行删除超时记录的操作。 2. **更新SessionID和记录**:将当前会话ID保存到数据库,并更新记录,以确保会话有效性和持续性。 3. **动态计算在线人数**:通过查询数据库,计算当前仍在活跃的会话数,并根据超时时间间隔对会话进行删除和计数。 文章的核心内容是用Session和连接对象高效地实现实时在线人数统计,同时避免了传统被动式方法的不足。



<%

sessionID=session.SessionID

timeout=5


设置session保持的时间

.

Conn_String=”DRIVER={Microsoft Access Driver (*.mdb)};DBQ=” & Server.MapPath(“count.mdb”)

‘Conn_String=”activeUser”


最好设置DSN=”activeuser”,因为我们需要在所有的ASP脚本中包含这个文件

.

Set ConnCount=Server.CreateObject(“ADODB.Connection”)

ConnCount.Open Conn_String

aaa=dateadd(“n”, -timeout, now())

connCount.Execute (“delete * from count where postdate < #” & aaa & “#”)


在超时后删除

session.

sql0=”select sess from count where sess='” & sessionID & “‘”

保持

sessionID.

set rscheck=connCount.Execute (sql0)

if rscheck.eof then

sql=”insert into count (sess,postdate) values(‘” & sessionID & “‘, ‘” & now() & “‘)”

connCount.Execute (sql)

end if

rscheck.close

set rscheck=nothing

sql2=”select count(sess) from count”

计算

sessionID.

set rs=connCount.Execute (sql2)

count=rs(0)

rs.close

set rs=nothing

sql3=”select * from count”

set rspredel=connCount.Execute (sql3)

do until rspredel.eof

xxx=DateDiff(“n”, rspredel(“postdate”), Now())

if xxx > timeout then

count=count-1

end if

rspredel.movenext

loop

rspredel.close

set rspredel=nothing

connCount.Close

set connCount=nothing

if count=0 then

count=1

end if

%>

当前正有<%=count%>人在随风起舞流连忘返!

[1]

您可能感兴趣的文章:统计在线人数是实时的吗?被动式统计网站在线人数asp论坛在线人数统计研究也谈php网站在线人数统计javascript 传统事件模型构造的事件监听器实现代码c#显示当前在线人数示例封装了一个支持匿名函数的Javascript事件监听器php+memcache实现的网站在线人数统计代码PHP+jquery实时显示网站在线人数的方法jsp利用application统计在线人数的方法php实现统计网站在线人数的方法ASP.NET中使用Application对象实现简单在线人数统计功能php使用Session和文件统计在线人数浅析JAVA中过滤器、监听器、拦截器的区别利用java监听器实现在线人数统计

© 版权声明

相关文章