我想创建一个用户状态系统,我想在我的数据库中有一个名为last_active
的日期时间字段,并使用带有当前时间的ajax自动更新该字段。
然后我检查last_active
和当前时间之间的分钟..告诉用户是否在线,不活动和离线..
这是一项好技术吗?例如,如果用户打开了网站但正在做其他事情会发生什么?
是否有办法只在用户正在查看页面时触发ajax请求?
答案 0 :(得分:2)
您当前的方法是一项很好的技巧,可以采用的方法,
您可以使用jquery查看focusin
和focusout
函数,以检查用户当前是否在文档中处于活动状态,
$(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
。