检查用户是否脱机并更新数据库中的字段

时间:2019-06-21 22:55:44

标签: javascript php jquery mysql mariadb

我数据库的一个表中有一个字段,只要用户单击注销按钮,该字段就会更新。我遇到的问题是,在会话不活动且用户未单击注销按钮时如何更新字段。

我首先想到是要检查用户是否关闭浏览器,但是我对此不太确定。

我的另一个想法是,经过一定时间的不活动之后,它会更新数据库中的字段,但是我不知道该怎么做。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

让我考虑一些用例来回答您的问题。看到用户处于离线状态->

  • 1。任一用户单击注销。
  • 2。或者用户关闭标签页或brauser。
  • 3.Session期满(如果长时间处于活动状态且不执行任何操作)。
  

这些是可能的情况。我可以建议您做的最好的解决方案   数据库中还有一个名为last_activity的字段,该字段可能   包括用户上次执行的操作,随时间保存。更新数据库   同时在每个特定时间检查此字段,即调用函数   在一定时间间隔内,并相应地更新数据库。

$mysqli->prepare('UPDATE User SET last_action=NOW() WHERE username=?');

一旦有了,您就可以根据服务器上“在线”的含义(通常为last_action > NOW() - [some_duration])列出所有拥有last_action > NOW() - one hour)的用户。 您可以通过其在线离线状态随时跟踪所需的一切。