在线人数统计
2004-09-08 10:25
274 查看
前两天有网友问到这个问题,我这里来回答一下。
从逻辑上说,这个问题很简单。那就是来一个用户,在线人数加一,离开一个用户,在线人数减一。
现在首先需要解决的问题是如何知道用户的进入和增加。
在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")%>就可以了。
从逻辑上说,这个问题很简单。那就是来一个用户,在线人数加一,离开一个用户,在线人数减一。
现在首先需要解决的问题是如何知道用户的进入和增加。
在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")%>就可以了。
相关文章推荐
- 两种统计当前在线人数的方法
- JaveWeb统计在线人数
- 统计在线人数的基本用法
- 统计在线人数
- PHP+Memcache统计当前在线人数
- Discuz在线人数统计原理-个人分析
- php简单统计在线人数的方法
- 网站在线人数以及历史访问人数的统计代码
- 一个实用的FSO-实时统计在线人数
- 09-实时统计在线人数(jsp内置对象)
- 统计在线人数
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 实现在线人数统计
- asp.net 在线人数统计(转)
- jsp实现 统计在线人数
- PHP统计当前在线人数
- JavaWeb中的Session、SessionListener、在线人数统计
- 利用servlet监听器实现jsp中在线人数统计的方法
- session统计在线人数
- JSP +Servlet 统计当前在线人数