首页 > 解决方案 > 检测用户是活动还是空闲

问题描述

我正在构建一个浏览器扩展并想检测用户是否处于活动状态。因此,我检查用户是否在过去 2 分钟内移动了鼠标。

但是,为了获得更好的结果,我想同时跟踪多个事件。用户在最后两分钟内是否移动了鼠标、进行了单击事件或滚动。

这是我检测鼠标移动的代码:

document.onmousemove = function() {
  clearTimeout(timeout);
  timeout = setTimeout(function() {
    // user is idle
  }, 120000);
};

如何改进代码以一次跟踪多个事件?

标签: javascriptevents

解决方案


这行得通吗?

var timeout;
function idle(){
  //idle things
}
document.onmousemove = function() {
  clearTimeout(timeout);
  timeout = setTimeout(idle(), 120000);
};
document.onscroll = function() {
  clearTimeout(timeout);
  timeout = setTimeout(idle(), 120000);
};
//continue with other events

推荐阅读