当前位置: 首页 > 图文教程 > 网络编程 > ASP > 聊天室关键技术[用户断线]处理

ASP
编写通用的asp防注入程序
vbs(asp)下的Function 语句
ASP中类Class相关内容的整理资料
字符批量替换程序asp服务器版
旁注-网站小助手旭方修改免杀asp版
用正则表达式写的HTML分离函数
asp中"无限流"分页程序代码
asp的一个日期格式化函数
asp中创建多级目录的两段代码
asp中去除内容HTML标签的三个function函数
chr(9)、chr(10)、chr(13)、chr(32)、chr(34)讲解
方便的大家admin及admin888 经过 md5加密后16位和32位代码
可用的ASP无重复数字随机函数, 数组实现, 并应用于随机显示记录集
asp动态级联菜单代码
ASP中经常使用的SQL语句与教程说明
实例分析之用ASP编程实现网络内容快速查找的代码
服务端 VBScript 与 JScript 几个相同特性的写法与示例
ASP 环境下 VBS 事件应用 示例代码
asp 之上传漏洞终结篇
asp中一段防SQL注入的通用脚本

ASP 中的 聊天室关键技术[用户断线]处理


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 98 ::
收藏到网摘: n/a

  在编聊天室时,处理用户断线是一个刺手的问题,特别是放到免费网站上,如果一味地靠global.asa,什么时候触发session_onend,application_onend,都是一个不确定的数字,在设计时,合理地安排会带来意想不到的好处。
    那么有什么最简便办法处理用户断线呢?
    笔者经过试验,有了以下的方法:
    聊天室用N个application("user" & N)来保存用户名,再用application("TimeBegin")来保存每个用户的登录时间,同时,在用户登录时用session("TimerBegin")保存登录时间(timer),在发言区设定刷新时间为N秒,每次刷新将session("TimeBegin")的时间更新,同时判断timer - application("user"&session(userID)) 是否>N秒,如果是则说明该用户没有自动刷新,即意味着已经断线,即可将该application("user"&N)设为空值,再提示该用户已退出即可。
        部分代码:
    total = application("AllPeople")'聊天总人数
    aryHuman = split(total,";")
    for i = lbound(aryHuman) to ubound(aryHuman) - 1
    if application("user" & i) = "online" then
    if int(timer) - int(application("TimeBegin" & i)) > 120 then
    application("user" & i) = ""
    temp = aryHuman(i)
    aryName = split(temp,",")
    hrefname =  aryName(0)
    for j = lbound(aryHuman) to ubound(aryHuman) - 1
    if application("user" & j) = "online" then
    application("content" & j) = "<FONT color=#000000>【公告】"&hrefname&"</FONT>" &"<font  color=#F08000
>"& "断线..." & "</font><font color = #000000 class=p9>" & "   <" & time() & "></font><br>" & application
("content" & j)
    end if
    next
    end if
    end if
    next