ASP.NET在线用户列表续(理想方法)

cnsd169 2008-04-20 11:27:37
续上一帖子(会话期内的处理)

设计思路:用户在会话期内离开网站一次性异步提交到服务器-处理列表。
实现:写一个js,通过cookie维护一个打开页面的记数器,完全在客户端处理
页面onload;cookie["VISIPAGECOUNT"] +1
页面onunload;cookie["VISIPAGECOUNT"] -1
这样在每个页面加载和卸载时在客户端各处理一次。
if VISIPAGECOUNT=0
{

xmlhttp处理----------用户离线(更新数据库在线标记)
}
优点:
页面只包含一个很小的js文件,不需要更改页面,完全基于客户端。
一次异步提交,最大限度的减小网络负担
与数据库结合,不用在服务器端维护一个大在线集合(上文中的朋友提出static HashTbale,镜像站点或者万级以上难于维护……,还有就是服务器掉电……)

缺点:
需要用户打开cookie(变通方法在客户端写文本文件顺便把用户信息记录在内)
用户意外掉电掉线,只有到session_end结束时自动处理

欢迎大家指正探讨!


...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajwyyan 2009-08-18
  • 打赏
  • 举报
回复
可以结合AJAX来实现
iuhxq 2008-04-20
  • 打赏
  • 举报
回复
不能称得上理想方法。

JS实现不稳定。而且是非常不稳定。
grearo 2008-04-20
  • 打赏
  • 举报
回复
不支持这种方法;js一不稳定,二容易而已攻击(因为他是完全开源的)
完全可以提出你的代码,疯狂恶意提交[合法]信息。

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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