Fdream's Blog
专注于WEB前端开发
Powered by Google
1

第三种方法和这个类似,只不过是根据用户的 IP 来判断在线人数,这样就避免了三面的特殊情况,而且不需要用 session 哦!

首先还是建一个数据库:count.mdb,包含一个表:count,表中字段为:

引用内容:

ID 自动编号

ip 文本

posttime 日期/时间

具体实现代码如下,文件名为 online.asp:

ASP中统计在线人数的方法花样繁多,我也搞不清楚有几种 ^_^,偶这里介绍三种先,如有错误,欢迎各位批评指正,还有好方法,敬请补充!

首先介绍一种最简单的方法,利用 Application、 session 和 Global.asa ,因为当用ASP制作的网页都存放与WWW服务器的基点目录并且WWW服务器启动之后,每当有对ASP文件的HTTP请求时,服务器都会去读取基点目录下的Global.asa文件。所以可以在 Global.asa 文件中包含如下代码:

引用内容:

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

Sub Application_OnStart

' 当服务器开启时,设置用户计数器为0

Application("ActiveUsers") = 0

End Sub

Sub Session_OnStart

' 设置Session对象的有效时间为20分钟(也可以更长,但是越长对服务器的资源占用越多)

Session.Timeout = 20

' 当开始一个Session时用户计数器加1

Application.Lock

Application("ActiveUsers") = Application("ActiveUsers") + 1

Application.UnLock

End Sub

Sub Session_OnEnd

' 当结束一个Session时用户计数器减1

Application.Lock

Application("ActiveUsers") = Application("ActiveUsers") - 1

Application.UnLock

End Sub

</SCRIPT>

实际上,一般的在线人数是指一个时段内的访客人数统计,时间的长短是由设计者设定的。

  在这个时段内,各个不同ip访问本站点的总数,就是当前的线上人数。在ASP中,使用session对象来实现统计,实现代码如下:

golobal.asa文件

  〈script language="vbscript"runat="server"〉

  sub session—onstart

  application("online")=application("online")+1

  end sub

  sub session—onend

  application("online")=application("online")-1

  end sub

  sub application—onstard

  application("online")=0

  end sub

  sub application—onend

  application("online")=0

  end sub

  〈/script〉

1
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.4062604 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号