************* 如何确定不同页面的访问人数及session相关值 ? **************

sam_fs80 2002-01-31 01:12:46
我想在两个不同页面提供各自的在线人数 及姓名列表

如在 聊天室显示 '聊天室在线人数为: 3 , 有用户: a,b,c '

在论坛显示 '论坛人数为: 4 ,有用户 d,e,f,h,'

但每个用户的session在同一个站点是唯一的,怎样知道每个用户所在页面呢 ?

我的想法是在进入特定页面是用各自的dictionary记录 ,得当用户离开该页面而又并非session.abandon时那又该如何判定是否删除dictionary中的相关值呢?
...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sam_fs80 2002-01-31
  • 打赏
  • 举报
回复
Thank You

问这个问题本来只是想解决论坛与聊天室人数及用户名确定问题 , 那么就用application吧,
jaway 2002-01-31
  • 打赏
  • 举报
回复
你想知道谁登录到你的网站, 抑或是不同的用户在同一时刻登录会怎样呢?
当用户登陆时, 浏览器和服务器之间的交换只有几十毫秒.假如我们从客户访问 page A (R1)开始计时, 当用户访问 page B (R2)停止, 这样我们可以说客户在网站上停留了这么多时间.
但是当用户关闭浏览器, 或者突然间关掉机器, 或者突然他的系统崩溃了. 怎样? 他不在访问R2
了, 我们的计时器还在工作, 我们就得不到用户的确切在线信息了.
这样一来我们也不能防止不同的用户用同样的用户名和密码在同一时间登陆. 因为我们得不到用户的目前状态. 不知道他有没有下线, 或者LOGOUT.
不幸的是 Hotmail, Yahoo Mail, 也没有这样的安全保护措施.
现在有一种解决办法...

当我们开始下一步之前, 我们要求你必须熟悉structures和associative arrays这两个概念.
我们建议你仔细研究一下Studio里面的帮助信息.
假设我们知道你了解熟悉structures, 重要的是你要知道session variables和applications variables
都是structures.
你现在知道session variables确切的说是指一个用户 而且你也知道用户可以使用application variable.
所以,如果我们插入所有已经登陆用户的session variables到一个application variable/structure里面,我们很容易在这个structure中循环然后了解谁还在使用这个session variable. 至此我们可以检查一个正在登陆的用户, 他的ID是不是已经被使用了(在线);


对于没有使用Logout就离开应用程序的用户, 我们采取以下两个办法:

A - 跟踪用户的session超时状态: 当用户每次对程序做http request的时候,包含用户登陆信息的application variable做及时更新.
这样一来, 我们可以跟踪用户最后在系统请求的时间.这样当新用户在登陆的时候, 我们使用检查他上一次的请求时间,然后算出到现在的时间差.如果这个时间差超出我们理论认为的超时设置, 我们就让他登陆,如果不是, 则拒绝执行.

B - 另外, 我们可以使用jscript, 当用户离开时或者试图关闭浏览器时后,我们强制自动Logout出系统. 现在留给我们的情况就是用户系统掉电,或者系统崩溃, 幸运的是这种情况发生的几率很低.

别忘了, 我们可以减少用户session Timeout的规定时间. 以解决这种状况.

所以也不要一味的追求这些.


sam_fs80 2002-01-31
  • 打赏
  • 举报
回复
用session_onstart , sessoin_onend只能知道目前站上人数,

并不能知道哪个页面的准确人数及各自的session值
playmud 2002-01-31
  • 打赏
  • 举报
回复
在global.asa中
session()启动的时候application加一,并记录下用户名
session()结束的时候application减一,删除该用户名
sam_fs80 2002-01-31
  • 打赏
  • 举报
回复
那么如何显示 用户名呢??

用application 可以显示不同页面的在线人数(设一个application("页面")的值就可以)
但用户名呢?? application("一个数组")吗 ??

如果用户离开呢 ?? (特别是还在本站但不在本页面,而且是用按关闭按钮方法关闭该页面时)
怎样刷新该内容?
thatwind 2002-01-31
  • 打赏
  • 举报
回复
不同页面统计各自的application不可以么?

28,406

社区成员

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

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