想看谁在线,怎么做?

searoc1117 2006-02-22 02:35:40
在同学录程序中,
想看看谁在线,
并且能把在线人员的名单显示出来,
怎么做?
谢谢~~
...全文
130 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
youzi520 2006-02-24
  • 打赏
  • 举报
回复
前两天有网友问到这个问题,我这里来回答一下。
从逻辑上说,这个问题很简单。那就是来一个用户,在线人数加一,离开一个用户,在线人数减一。
现在首先需要解决的问题是如何知道用户的进入和增加。

在asp中,用户进入访问页面的时候,会触发一个事情,事件名称是session_onstart,在离开的时候(准确地说,是在一定的时间内没有访问页面数据,缺省的时间是20分钟),也会触发一个事件,事件的名称是session_onend。我们可以在global.asa文件中定义这两个事件所执行的操作。

接下来我们需要考虑的问题是,如何让这个变量对于所有的人都是一样的(废话,不一样那一定不准确)。因此,我们首先想到的就是把在线人数放在一个application变量里。

到这里,我们需要解决的问题都已经解决了,下面来看看代码:
sub session_onstart
application.lock
application("onlineusers")=application("onlineusers")+1
application.unlock
end sub

sub session_onend
application.lock
application("onlineusers")=application("onlineusers")-1
application.unlock
end sub
在这里有一个小小的问题,那就是,如果用户是第一个访问者,由于在线人数变量没有初始化,所以会出现错误的提示。要想解决这个问题,我们需要加上初始化该变量的代码:
if isempty(application("onlineusers")) then
application("onlineusers")=1
end if
修改后的代码如下:
sub session_onstart
application.lock
if isempty(application("onlineusers")) then
application("onlineusers")=1
else
application("onlineusers")=application("onlineusers")+1
end if
application.unlock
end sub

sub session_onend
application.lock
application("onlineusers")=application("onlineusers")-1
application.unlock
end sub
把上面的代码保存为global.asa,保存在web应用程序根目录下(必须在根目录下),然后在页面的合适位置中使用<%=application("onlineusers")%>就可以了
lscscar 2006-02-24
  • 打赏
  • 举报
回复
同问
searoc1117 2006-02-24
  • 打赏
  • 举报
回复
能不能说得详细点
我是新手
不好意思
谢谢
kaijier 2006-02-22
  • 打赏
  • 举报
回复
用application对象记录

28,408

社区成员

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

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