asp学习网: 首页 >> 杂项 >> asp统计在线用户的简单办法

asp统计在线用户的简单办法


统计在线人数的方法有很多,关键有几点,一个是怎么样标记唯一访客;一个是怎么样统计异常退出的访客;三个就是怎么样减少服务器端的压力.
标志唯一访客的方法有两个,一个是ip来源,另外一个是sessionid.下面的这个程序是用sessionid作为标记,统计在线用户的一个办法.
<%
function disponline(timeout)
''显示在线人数  单位 秒  参数表示访问过期的时间
sessionID = session.SessionID

''检测当前sessionid
dim rshceck,sqlcheck
sqlcheck="select sessid,sesstime from online where sessid=''"&sessionID&"''"
set rscheck = server.createobject("adodb.recordset")
rscheck.open sqlcheck,conn,1,3
if rscheck.eof or rscheck.bof then
rscheck.addnew
rscheck("sessID")=sessionID
rscheck("sesstime")=now()
else
rscheck("sesstime")=now()
end if
rscheck.uppdate
rscheck.close
set rscheck=nothing

''删除过期在线人数
dim rspredel,sqlpredel
sqlpredel="select * from online"
set rspredel = server.createobject("adodb.recordset")
rspredel.open sqlpredel,conn,1,3
for i=1 to rspredel.recordcount
if DateDiff("s", rspredel("sesstime"), Now()) > timeout then
rspredel.delete
end if
rspredel.movenext
next
rspredel.close
rspredel.open sqlpredel,conn,1,1
''code by niceidea
dim count
count=rspredel.recordcount
rspredel.close
set respredel=nothing

if count = 0 then count = 1 ''汗......
response.write (count)
%>

   调用方法,另存文件为online.asp,然后在数据库链接文件中include进去,在需要显示的地方,调用函数就可以了.这个办法的信息记录在数据库中,需要在数据库中新建一个online的表.每次页面刷新都会产生数据读写,消耗cpu的资源比较多.

   也可以用application对象存储类似的数组,在这个办法下,当访客数量多的时候,可能会消耗一部分的内存.所以,在需要统计访问的时候,最好使用第三方的统计,现在连google推出了免费的统计服务,一般情况下是没有必要自己统计的. from:asp学习网/title:asp统计在线用户的简单办法/ time:2006-4-7 2:06:30

本文主题asp统计在线用户的简单办法

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行