在线的朋友都来看

gmc007 2001-07-12 03:30:05
有什么好的方法可以判断一个用户是否离开??
...全文
52 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gmc007 2001-07-12
谢谢freezwy(网络自由人)和11830(其其),我想freezwy(网络自由人)的意思是不管用户A(假设)在不在,只要有用户访问带有检测函数的页面就能把非正常离开的用户找出来。
是这样吗?
回复
11830 2001-07-12
总之只要设了session.timeout=10
那么用户在10分钟之内只要没有刷新asp页面就认为它以离开并触发session_onend事件
回复
freezwy 2001-07-12
我想你是不理解我说的意思,我给你一个简单的流程说明。
假设
1.定义用户如果在5分钟内不活动就认为是离开。
2.有三个页面,P1.ASP,P2.ASP,P3.ASP
3.你已经写了一个判断用户的函数
4.你用的是数据库处理
当用户进入P1.ASP的时候,在数据库中插入SESSION.SESSIONID,进入时间LOGINTIME。
这里你可以定义是登陆的和游客两种了,在插入时检测所有记录,
如果GETDATE()-LOGINTIME》5分钟,则删除记录,清除该用户的变量(比如SESSION)。
当用户进入P2.ASP时,还是用这个函数检测,同时修改LOGINTIME为NOW()。
我想你明白我的意思了吧,当然,基于HTTP的东西是有不准确的地方的,这个很难避免的。如果要稍微精确的处理,则是以系统的开销为代价的。
希望这些能帮你理解这个原理,我就是这样弄的,在WWW.TJINFO.COM/CLUB
回复
liugys 2001-07-12
session.timeout=10 '单位是分钟
如果10分钟内用户不活动(不点击网页),IIS就会认为用户已离开,然后触发session_onend 事件,不过你要在global.asa中定义
回复
gmc007 2001-07-12
若是用户是关闭IE的窗口离开的又该如何处理呢?
回复
11830 2001-07-12
问问他在不在线不就行了,没回答就是不在线
回复
freezwy 2001-07-12
你定义一个SESSIONOUT的时间,在一个时间段内如果检测用户不在活动,则认为其离开了。就清除其占有的变量,刷新在线名单。
不管是数据库还是用SESSION,都要求在相应的页面触发判断在线的执行,所以最好写成一个函数或者过程。
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2001-07-12 03:30
社区公告
暂无公告