100敬上!小弟初学asp,大哥大姐帮帮忙。。

mojide 2005-05-01 11:40:52
我在学一个在线统计程序,可是不懂啊?
哪位给解释一下(后面带问号的),最好先从整体上说说原理。谢谢!!!



dim refreshtime,idletime,totalusers,onlineuser(),tmp(),num,i,id//定义变量,注意类型
refreshtime=10
idletime=refreshtime*3
application.Lock//必须锁住,因为application变量不能同时改变,
//一个访问者改变时,其他人不能改变.
//application就是一个全局变量,只要服务器开着,所有页面都可引用

if application(session.sessionid &"lastaccesstime")=empty then//?
if application("totalusers")=empty then application("totalusers")=0//?
redim tmp(application("totalusers")+1)//?
num=0


if application("totalusers")>0 then
for I=lbound(application("onlineuser")) to ubound(application("onlineuser"))
//application("onlineuser")是数组
id=application("onlineuser")(I)
if id<>session.sessionid then//?
tmp(num)=id//?
num=num+1//数组指针前移
end if
next
end if


tmp(num)=session.sessionid//?
application("totalusers")=num+1//注意数组第一个下标是0
redim preserve tmp(application("totalusers"))//?
application("onlineuser")=tmp//?
end if
application(session.sessionid &"lastaccesstime")=timer//?
redim tmp(application("totalusers"))//?
num=0
for i=0 to application("totalusers")-1//?
id =application("onlineuser")(i)
if(timer-application(id &"lastaccesstime"))<idletime then//?
tmp(num)=id
num=num+1
else
application(id &"lastaccesstime")=empty//?
end if
next

if num<>application("totalusers") then//?
redim preserve tmp(num)
application("onlineuser")=tmp
application("totalusers")=num
end if


application.UnLock()
%>
...全文
128 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
会织网的蚂蚁 2005-05-02
  • 打赏
  • 举报
回复
祝您成功,有事,请发留言到centurybobo@hotmail.com我不一定常常在线。希望能得到您遇到的问题,帮您出点我的主意,只为学习。
jarraytan 2005-05-02
  • 打赏
  • 举报
回复
每个用户在建立一个ASP连接时,都会发送一个类似cookieid的东东,来表明唯一的身份,就是这个session.sessionid 啦。每一个用户有一个整个系统独一无二的sessionid,以同其他用户区分。

楼主,光看这个页面没什么用,建议你先看看global.asa页面。
一般来说在线统计都是包含了四个部分。包含在global.asa页面里。
application_onstart 服务器启动,程序开始运行时。一般在这个事件里进行初始化人数变量的值;
application_onend 服务器或程序中止运行时。一般在这个事件里对数据进行保存,处理之类的;
session_onstart 开始一个新用户的连接时,一般在这个事件里对在线人数变量加一;
session_onend 一个用户中止对话或对话超时时,一般在这个事件里对在线人数变量减一。
在这四个部分都有一个application全局变量起作用,也就是保存在线人数的变量。整个程序所有用户共用的一个变量!
  • 打赏
  • 举报
回复
session.sessionid

这个应该是一个hash散列值,每一个在线用户分配一个,是一个数字

<% =session.sessionid %>你这么试一下就理解了,这个弄明白后好好想想,然后再重新提一下问题的,还有你要看看global的asa文件的内容的
iexapl 2005-05-01
  • 打赏
  • 举报
回复
session.sessionid我想和session("sessionid")差不多吧

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧