使用js写个方法检测用户在5分钟内无任何操作则退出登录

在前端开发中,你可以通过监听用户的各种交互事件来判断用户是否在活动。如果用户5分钟内没有任何操作,你可以触发一个函数来进行退出登录的操作。以下是一个简单的示例,使用JavaScript和setTimeout来实现这个功能:

let userActivityTimeout;
const INACTIVITY_TIMEOUT = 5 * 60 * 1000; // 5分钟

// 重置用户活动计时器
function resetUserActivityTimeout() {
    clearTimeout(userActivityTimeout);
    userActivityTimeout = setTimeout(logoutUser, INACTIVITY_TIMEOUT);
}

// 用户无操作时调用的函数
function logoutUser() {
    // 在这里实现你的退出登录逻辑
    alert('由于5分钟内无操作,您已被自动退出登录。');
    // 例如,你可以重定向到登录页面或者清除用户的登录状态等。
}

// 监听各种用户交互事件来重置计时器
window.addEventListener('mousemove', resetUserActivityTimeout);
window.addEventListener('keydown', resetUserActivityTimeout);
window.addEventListener('click', resetUserActivityTimeout);
window.addEventListener('touchstart', resetUserActivityTimeout); // 为了支持移动设备

// 初始化计时器
resetUserActivityTimeout();

这段代码首先定义了一个userActivityTimeout变量来存储setTimeout的返回值,以便在必要时可以清除它。INACTIVITY_TIMEOUT常量设置了用户无操作后触发退出登录的时间(5分钟)。

resetUserActivityTimeout函数用于重置用户活动的计时器。每次用户进行交互(如移动鼠标、按键、点击或触摸屏幕)时,都会调用此函数来重置计时器。

logoutUser函数在用户无操作达到5分钟后被调用。你可以在这个函数中实现你的退出登录逻辑,比如重定向到登录页面或清除用户的登录状态。

最后,通过监听各种用户交互事件来调用resetUserActivityTimeout函数,从而重置计时器。这样,只要用户在5分钟内进行了任何交互,计时器就会被重置,从而防止用户被自动退出登录。如果用户在5分钟内没有进行任何交互,logoutUser函数就会被调用,执行退出登录的操作。

posted @   王铁柱6  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示