检查用户状态

时间:2012-06-17 11:08:35

标签: php ajax status

我想创建一个用户状态系统,我想在我的数据库中有一个名为last_active的日期时间字段,并使用带有当前时间的ajax自动更新该字段。

然后我检查last_active和当前时间之间的分钟..告诉用户是否在线,不活动和离线..

这是一项好技术吗?例如,如果用户打开了网站但正在做其他事情会发生什么?

是否有办法只在用户正在查看页面时触发ajax请求?

2 个答案:

答案 0 :(得分:2)

您当前的方法是一项很好的技巧,可以采用的方法,

您可以使用jquery查看focusinfocusout函数,以检查用户当前是否在文档中处于活动状态,

$(document).ready(function(){
    $([window, document]).focusin(function(){
      // start the ajax requests
    }).focusout(function(){
      // stop the ajax requests
    });
});

你应该在true函数中设置focusin变量,并在false函数中设置为focusout。现在,只有当变量设置为true时,才会触发continue ajax请求函数。

答案 1 :(得分:1)

这是检查活动的一种非常好的方法。当页面仅处于焦点时,您可以触发Ajax请求。我会考虑使用mousemove事件或类似事件,但模糊/焦点事件也可以证明是有用的。

当触发mousemove事件时,将变量设置为true并在执行Ajax请求之前检查该变量。不要忘记在每次Ajax调用之间将其重置为false