关闭浏览器退出系统的问题

lkh42002 2008-03-21 09:52:39
一般通过点击退出按钮或者超时比较好处理。 但是直接关闭浏览器的时候有什么好的思路呢?
...全文
203 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
myvicy 2008-03-21
  • 打赏
  • 举报
回复
或者就是后面登陆的把前面的踢出.
在一个个表记录所有在线用户,每次操作都去查询该表.如果某一个用户在两处登陆,早先登陆的用户操作的时候到数据库判断因为有两条记录,则不允许操作并把该用户在该表中的记录删除,然后给他返回一个"在别处登陆你被迫下线"的提示,并且系统自动把他设置为退出。
这就可以防止掉线断电等情况.不过仍旧要做的就是,后者登陆时,如果前面登陆的操作时间大于设置的session时间,需要把这个记录删除(有可能是掉线遗留的数据).
  • 打赏
  • 举报
回复
限定同一用户名同一时间登录个数的解决方案:http://blog.csdn.net/chinmo/archive/2008/02/26/2120428.aspx
myvicy 2008-03-21
  • 打赏
  • 举报
回复
是的,基本上就是你8楼说的方法,判断操作时间。
lkh42002 2008-03-21
  • 打赏
  • 举报
回复
因为要防止一个用户两处登陆,数据库里有个登陆状态,一旦用户退出就要把状态还原,否则用户下次登陆就会受到影响。
请大家多多指教.
我想了一个方法,但是觉得比较复杂, 具体是用户登录后每进行一次操作(包括切换页面、提交表单...),记录下用户的操作时间,在数据库里用作业每过一段时间检查用户的这个最后操作时间,如果大于某个值就当作用户退出并把状态还原。
  • 打赏
  • 举报
回复
要设计好数据库就可以
md5e 2008-03-21
  • 打赏
  • 举报
回复
<script for="window" event="onbeforeunload">
if(event){
if(event.clientX > document.body.clientWidth && event.clientY<0 || event.altKey){
return("这个是判断关浏览器的,希望对你有用") ;
}
}
</script>


如果想做好点最后让客户端用ajax每30秒(或更久些)与服务会话一次
myvicy 2008-03-21
  • 打赏
  • 举报
回复
比较麻烦.
刷新的话就先退出,然后自动登陆.
不止一个窗口用session记录所有窗口,即在打开网页时session记录当前地址,退出或关闭时清除session中的该值.
看看楼下还有什么好办法.
若白师妹 2008-03-21
  • 打赏
  • 举报
回复
直接关电源或哪天死机了呢?
若白师妹 2008-03-21
  • 打赏
  • 举报
回复
无解
lkh42002 2008-03-21
  • 打赏
  • 举报
回复
考虑刷新和打开的不止一个浏览器窗口
myvicy 2008-03-21
  • 打赏
  • 举报
回复
在onunload里写代码.
用ajax同步方式执行退出.
ycmuma 2008-03-21
  • 打赏
  • 举报
回复
在onunload里写代码.
用ajax同步方式执行退出.

28,391

社区成员

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

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