JavaScript 实现用户活跃度检测:监听交互事件与超时判定
作者:微光时间:2026-10-31 13:45:14浏览:167
本文详解如何利用 JavaScript 判断用户是否处于活跃状态。通过监听鼠标移动、点击、键盘输入等交互事件,重置定时器以检测超时。设定阈值(如5秒)后,若未检测到操作则判定为非活跃,否则保持活跃状态。
在某些场景下,我们需要在网页端检测用户是否处于非活跃状态。如果用户在一段时间内未进行任何页面操作,系统应将其判定为非活跃。在 JavaScript 中,可以通过监听鼠标或键盘相关的事件来实现对用户活跃状态的判断。
案例演示
在线演示 - 使用 JS 判断用户是否处于活跃状态

实现代码
该案例展示了如何获取用户的活跃状态。时间阈值设定为5秒,若超过该时间段内没有任何操作,则判定为非活跃;反之,则视为正在活跃中。
html
<p id="userState"></p>js
//活跃状态,true活跃中,false非活跃
let state = false;
//定时器
let timer = null;
//非活跃判定阈值,5秒没有任何活动表示非活跃
let timeout = 5000;
//用于展示状态信息的html元素
let userStateEl = document.getElementById('userState');
//批量添加事件监听
[
'mousemove', //鼠标移动
'mousedown', //鼠标按下
'touchstart', //触摸屏幕(移动端)
'wheel', //鼠标滚轮
'resize', //页面尺寸变化
'keydown', //键盘输入
]
.map(event =>{
window.addEventListener(event, onActive)
})
//触发活跃中
function onActive(){
//更新状态
state = true;
renderState();
//重置定时器
clearTimeout(timer);
timer = setTimeout(() =>{
state = false;
renderState();
}, timeout);
}
//更新状态信息
function renderState(){
if(state){
userStateEl.textContent = "活跃中 "
} else {
userStateEl.textContent = "❌非活跃状态"
}
}
//立刻触发一次活跃中
onActive();下载案例源码
至此,关于如何使用 JS 判断用户是否处于活跃状态的介绍已结束。如需了解更多相关内容,请搜索本站过往文章或继续浏览下方的相关文章。感谢大家的支持!
作者最新文章
JavaScript零基础入门:从环境搭建到运行第一段代码
2026-11-05 15:29:58
HTML链接中javascript:void(0)的作用及现代替代方案
2026-11-05 10:07:47
在线调试 JS 时怎么引入 jQuery 或 Vue 等第三方库
2026-11-05 08:53:56
原生JavaScript实现简易颜色选择器原理与代码
2026-11-03 23:22:19
JS原生表单序列化:FormData与URLSearchParams用法详解
2026-11-03 23:13:21
