我有一个应用程序,用户绝对必须登录才能使用它。
我在登录时使用PHP会话来存储用户数据。
如果用户打开窗口然后返回例如一小时后,检查他们是否仍然登录的最佳方法是什么?
我能想到的选择是:
1) check mouse movement which then fire AJAX php file to see if session still active
2) check as above on mouse click anywhere
但是这些将会不断运行,因此在没有那么多用户的情况下每秒可能会有数千次命中和击中服务器,所以我怀疑效率。
有更好的方法吗?有标准吗?
我正在使用PHP和JQuery。
答案 0 :(得分:2)
使用Javascripts setInterval(function, time)
函数每X分钟轮询一次服务器,以检查用户是否经过身份验证。根据所述结果返回JSON中的响应。
有关setInterval()
功能的详细讨论,请参阅javascript setInterval。
如果您确实在网站上询问用户活动,您可以在X分钟(例如一小时)之后使用setTimeout()
功能来记录用户通过AJAX请求输出,或显示诸如在线网上银行中的警告。
如果用户在超时发生之前发出请求,则由于请求 - 响应周期,此过程会自然重启。