如何在关闭页面后通知服务器更改用户登录状态

e67868 2013-07-23 06:26:56
一个写着玩的小东西,没思路了。

本来的思路是这样的:

用户登录时,通过login()向php提交ajax请求,连接MySQL,数据库中用一个字段表示用户登录状态,接到请求后,即标记为“已登录”。

用户登出时,通过logout()提交ajax请求,更改登录状态为“未登录”。

但是每次都要求用户触发logout()太麻烦,目前的办法是将logout()绑定为body的unload事件。这样直接关闭标签页或者浏览器时就自动进行logout()。

在仅考虑Chrome,Firefox,Opera三款浏览器的兼容性前提下,我不得不将logout()的ajax改为同步而不能使用异步(否则Chrome就不行了),即便如此,Opera仍然不能响应unload事件。

我希望能够在关闭页面时服务器能够改变MySQL中用于表示用户登录状态的字段的值。
...全文
302 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
e67868 2013-07-23
  • 打赏
  • 举报
回复
引用 1 楼 net_lover 的回复:
这种做法在什么浏览器中都不是完全可靠的。 一般的做法是session超时,或者ajax定时向服务器发送请求进行验证,如果发送间隔是10秒,则10后没有更新的就认为不在线了, 当然这会存在一定的误差的
这两种做法都是很常见的,不过我希望有一种即时的、毫不延迟的解决办法。
孟子E章 2013-07-23
  • 打赏
  • 举报
回复
这种做法在什么浏览器中都不是完全可靠的。 一般的做法是session超时,或者ajax定时向服务器发送请求进行验证,如果发送间隔是10秒,则10后没有更新的就认为不在线了, 当然这会存在一定的误差的

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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