主题:[讨论]请教ASP在线人数统计自动刷新的问题!
我在index.asp里面添加了
<!--#Include File="online.asp"-->
online.asp里面的代码已经能正常显示在线人数:
<%
Dim RefreshTime, IdleTime, TotalUsers, OnlineUser(), Tmp(), Num, I, ID
RefreshTime = 10
IdleTime = RefreshTime * 3
Application.Lock
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"))
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
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
%>
当前在线人数:<%= Application("TotalUsers") %>人
但是本人遇见一个问题,A打开页面之后,显示人数为1人,B打开页面之后显示人数为2人,C打开页面(同理)3人,但是A打开的页面一直都是显示1人,不会变动,并且经测试,我用5台电脑打开页面之后,在线人数显示正确,但是过一段时间之后,5台电脑都没有关闭页面,任何一台电脑刷新一下页面,就显示为1人了,晕~~~~~~~,另外4台电脑页面是开着的啊!怎么回事??
本人也想到了在online.asp显示里面添加自动刷新代码!但是它不是只刷新在线人数的数字,整个页面全部刷新了,晕~~~~~~~~~
各位高手有没有什么解决办法啊????
<!--#Include File="online.asp"-->
online.asp里面的代码已经能正常显示在线人数:
<%
Dim RefreshTime, IdleTime, TotalUsers, OnlineUser(), Tmp(), Num, I, ID
RefreshTime = 10
IdleTime = RefreshTime * 3
Application.Lock
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"))
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
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
%>
当前在线人数:<%= Application("TotalUsers") %>人
但是本人遇见一个问题,A打开页面之后,显示人数为1人,B打开页面之后显示人数为2人,C打开页面(同理)3人,但是A打开的页面一直都是显示1人,不会变动,并且经测试,我用5台电脑打开页面之后,在线人数显示正确,但是过一段时间之后,5台电脑都没有关闭页面,任何一台电脑刷新一下页面,就显示为1人了,晕~~~~~~~,另外4台电脑页面是开着的啊!怎么回事??
本人也想到了在online.asp显示里面添加自动刷新代码!但是它不是只刷新在线人数的数字,整个页面全部刷新了,晕~~~~~~~~~
各位高手有没有什么解决办法啊????