继承人我有一个问题。当用户登录网站时,它会设置一个值以指示它们处于脱机状态。如果他们通过网站注销,则设置该值以指示用户处于脱机状态。
但是如果用户只是在不按下注销的情况下关闭网站,它仍然表示他们在线。
我怎样才能让它们在关闭网站后让它们脱机。
我的网站使用的是php,html,css和mysql。
答案 0 :(得分:5)
最常见的方法是使用用户的上一个活动而不仅仅是“在线”标记来保存时间戳。更新每个活动的时间戳,并通过检查已停用超过五分钟的用户来计算离线用户。
出于性能原因,您可能还希望将时间戳保存到用户当前会话中,并且仅在数据库即将过期时更新您的活动时间戳。
答案 1 :(得分:4)
由于关闭浏览器(或浏览器标签页)不会向您的服务器发送任何事件,基本上您无法对此作出反应。在这种情况下,我更喜欢心跳机制。
另一种方法是“假设”客户已经退出,如果他没有解雇任何事件,因为我们说20分钟左右。
此处讨论了类似的问题:Check if user is offline
答案 2 :(得分:2)
例如,您可以检查用户是否正在通过Ajax“回答”。或者您可以通过不活动超时将状态设置为脱机。
答案 3 :(得分:0)
当浏览器关闭时,可能会有一些javascript事件,你可以在服务器上使用ajax发送通知。
我猜的更好的方法是让客户端的javascript定期通知服务器用户仍在那里。一旦收到通知 - 他必须离线。