application的问题:请问利用APPLICATION如何做多用户聊天室及在线计数器

liuxk 2002-05-18 10:30:15
最好能写程序
...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaOk 2002-05-18
  • 打赏
  • 举报
回复
http://www.chinaok.net/Examples
vbs的中文手册。
rnd随机数

你可以招到一些文章看看。
搜索。
http://www.dev-club.com
possible_Y 2002-05-18
  • 打赏
  • 举报
回复
split(string,x)将字符串string以字符x分割开后存入数组
micher_yan 2002-05-18
  • 打赏
  • 举报
回复
用户离开的时候,因为无法准确的知道他是正常/非正常推出,所以推荐的方法是使用Session_onend解决。不过可以用另外一个办法,就是每个人在刷新名单的时候,首先刷新自己名字对应的时间,然后检查所有人的对应时间,发现超时(如2分钟)则把他从Application中cut,
liuxk 2002-05-18
  • 打赏
  • 举报
回复
为什么用户离开时的统计会那么复杂?SPLIT是什么函数?
liuxk 2002-05-18
  • 打赏
  • 举报
回复
rnd*3 做何解
ChinaOk 2002-05-18
  • 打赏
  • 举报
回复
上面的计数器显示的时有点假的人数。就是那个rnd部分。
ChinaOk 2002-05-18
  • 打赏
  • 举报
回复
计数器

<SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">
Sub Application_onStart
'当网站服务器启动时会执行这个过程
Application("c_onLine")="" '在线用户列表
Application("c_Num")=0 '人数

End sub

Sub Application_onEnd
End sub

Sub Session_onStart
'当有人访问时会触发这个过程。
Session.Timeout=10
sID=cstr(Session.SessionID) & "|" '用户标识
Application.Lock
Application("c_onLine")=Application("c_onLine") & sID
Application("c_Num")=Application("c_Num")+int(rnd*3)
Application.UnLock
End sub

Sub Session_onEnd
'用户离开时触发。
'Session.SessionID是系统分配的 ,可以唯一的标识一个用户的 id标识符

dim NewList(),onLineAry,NewUserStr,i,onLineNum,user
user=cstr(Session.SessionID)
onLineNum=0
Application.Lock
onLine=Application("c_onLine")
onLineAry=split(onLine,"|")
for i=0 to ubound(onLineAry)
if (onLineAry(i)<>user) and (onLineAry(i)<>"") then
redim preserve NewList(i)
NewList(i)=onLineAry(i)
onLineNum=onLineNum+1
end if
next
if onLineNum<=3 then onLineNum=onLineNum+int(rnd*8)
Application("c_Num")=onLineNum
if onLineNum=0 then
Application("c_onLine")=""
else
Application("c_onLine")=join(NewList,"|")
end if
Application.UnLock

End sub
</Script>


28,390

社区成员

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

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