当前位置: 代码网 > it编程>编程语言>Javascript > JS实现页面长时间不操作退出到登录页面的示例代码

JS实现页面长时间不操作退出到登录页面的示例代码

2024年05月15日 Javascript 我要评论
页面执行index.php1、在head标签中引入jquey和页面长时间不操作的js页面<script src="./statics/base/js/jquery-1.8.3.min.js"&g

页面执行

index.php

1、在head标签中引入jquey和页面长时间不操作的js页面

<script src="./statics/base/js/jquery-1.8.3.min.js"></script>
<script src="./js/sessiontimeout.js"></script>

2、页面底部,在dom加载完成之后调用初始化函数

<script>
    $(document).ready(function() {
	    sessiontimeout.init();
	});
</script>

 方法写入

sessiontimeout.js

(function (window) {//立即调用的函数表达式
    //设置时间,用户无操作多久后触发登出操作
    // let inactivitytimeout = 30 * 60 * 1000; // 30分钟
    let inactivitytimeout = 5 * 1000; // 5秒钟
    //定义一个变量timer,用于保存settimeout返回的id值,以便在需要时清除定时器。
    let timer;
    // 定义一个名为init的常量函数,用于初始化无操作超时功能,包括重置计时器和绑定事件监听器。
    const init = function () {
        resetinactivitytimeout();
        bindevents();
    };
    // 定义一个名为resetinactivitytimeout的常量函数,用于清除当前计时器并重新设置一个新的计时器,如果inactivitytimeout内没有用户活动,则执行登出操作。
    const resetinactivitytimeout = function () {
        // 清除当前存在的计时器。
        cleartimeout(timer);
        // 设置一个新的计时器,等待inactivitytimeout指定的毫秒数后执行logout函数。
        timer = settimeout(logout, inactivitytimeout);
    };
    // 定义一个名为bindevents的常量函数,用于绑定鼠标移动、按键和鼠标点击等事件,当这些事件发生时,调用resetinactivitytimeout函数重置计时器。
    const bindevents = function () {
        // 监听鼠标移动事件,每当鼠标移动时,重置计时器。
        document.addeventlistener('mousemove', resetinactivitytimeout);
        // 监听键盘按键事件,每当用户按下键盘键时,重置计时器。
        document.addeventlistener('keydown', resetinactivitytimeout);
        // 监听鼠标点击事件,每当用户点击鼠标时,重置计时器。
        document.addeventlistener('mousedown', resetinactivitytimeout);
    };
    // 定义一个名为logout的常量函数,用于执行登出操作。
    const logout = function () {
        // 清除本地存储的信息并跳转到登录页面
        // localstorage.removeitem('access_token');
        // 当调用logout函数时,将页面url更改为'./logout.php',从而实现页面跳转并登出系统。
        window.location.href = './logout.php';
    };
    // 初始化函数。检查全局window对象上是否存在名为sessiontimeout的属性。如果不存在,则将其定义为一个包含init方法的对象。
    if (typeof window.sessiontimeout === 'undefined') {
        // 将init函数作为一个属性挂载到全局sessiontimeout对象上,使得在各页面中可以通过sessiontimeout.init()来启用无操作超时自动登出功能。
        window.sessiontimeout = {
            init: init
        };
    }
})(window);

到此这篇关于js实现页面长时间不操作退出到登录页面的文章就介绍到这了,更多相关js长时间不操作退出登录页面内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com