1

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

然后我检查last_active和当前时间之间的分钟数..来判断用户是否在线、不活动和离线..

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

只有当用户正在查看页面时,有没有办法触发 ajax 请求?

4

2 回答 2

2

你目前的方法是一个很好的技术,也是要走的路,

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

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

您应该采用将设置为函数的变量,并将设置为true函数。现在 continue ajax 请求函数只有在变量设置为.focusinfalsefocusouttrue

于 2012-06-17T11:16:57.723 回答
1

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

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

于 2012-06-17T11:12:36.287 回答