翼度科技»论坛 编程开发 JavaScript 查看内容

如何使用 JS 判断用户是否处于活跃状态

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
有时候,我们需要在网页判断用户是否处与非活跃状态,如果用户长时间没有在页面上进行任何操作,我们则判定该用户是非活跃的。 在 javascript 中我们可以通过监听某些鼠标或键盘相关的事件来判定用户是否在活跃中。<p id="userState"></p>案例演示<p id="userState"></p><p id="userState"></p>在线演示 - 使用 JS 判断用户是否处于活跃状态<p id="userState"></p>
<p id="userState"></p>实现代码<p id="userState"></p><p id="userState"></p>案例演示了如何获取用户活跃状态,时间阈值定为5秒,超出该阈值没有操作表示非活跃,否则属于正在活跃中<p id="userState"></p>html<p id="userState"></p>
  1. <p id="userState"></p>
复制代码
js<p id="userState"></p>
  1. //活跃状态,true活跃中,false非活跃
  2. let state = false;
  3. //定时器
  4. let timer = null;
  5. //非活跃判定阈值,5秒没有任何活动表示非活跃
  6. let timeout = 5000;
  7. //用于展示状态信息的html元素
  8. let userStateEl = document.getElementById('userState');
  9. //批量添加事件监听
  10. [
  11.     'mousemove',    //鼠标移动
  12.     'mousedown',    //鼠标按下
  13.     'touchstart',   //触摸屏幕(移动端)
  14.     'wheel',        //鼠标滚轮
  15.     'resize',       //页面尺寸变化
  16.     'keydown',      //键盘输入
  17. ]
  18. .map(event =>{
  19.     window.addEventListener(event, onActive)
  20. })
  21. //触发活跃中
  22. function onActive(){
  23.     //更新状态
  24.     state = true;
  25.     renderState();
  26.     //重置定时器
  27.     clearTimeout(timer);
  28.     timer = setTimeout(() =>{
  29.         state = false;
  30.         renderState();
  31.     }, timeout);
  32. }
  33. //更新状态信息
  34. function renderState(){
  35.     if(state){
  36.         userStateEl.textContent = "活跃中 "
  37.     } else {
  38.         userStateEl.textContent = "❌非活跃状态"
  39.     }
  40. }
  41. //立刻触发一次活跃中
  42. onActive();
复制代码
下载案例源码<p id="userState"></p> <p id="userState"></p><p id="userState"></p><p id="userState"></p>来源:https://www.cnblogs.com/liuhangui/p/18196824/tracks-whether-the-user-is-being-inactive-in-js<p id="userState"></p>免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具