JS實(shí)現(xiàn)頁面長時(shí)間不操作退出到登錄頁面的示例代碼
頁面執(zhí)行
index.php
1、在head標(biāo)簽中引入jquey和頁面長時(shí)間不操作的js頁面
<script src="./statics/base/js/jquery-1.8.3.min.js"></script> <script src="./js/sessionTimeout.js"></script>
2、頁面底部,在DOM加載完成之后調(diào)用初始化函數(shù)
<script>
$(document).ready(function() {
sessionTimeout.init();
});
</script>方法寫入
sessionTimeout.js
(function (window) {//立即調(diào)用的函數(shù)表達(dá)式
//設(shè)置時(shí)間,用戶無操作多久后觸發(fā)登出操作
// let inactivityTimeout = 30 * 60 * 1000; // 30分鐘
let inactivityTimeout = 5 * 1000; // 5秒鐘
//定義一個(gè)變量timer,用于保存setTimeout返回的ID值,以便在需要時(shí)清除定時(shí)器。
let timer;
// 定義一個(gè)名為init的常量函數(shù),用于初始化無操作超時(shí)功能,包括重置計(jì)時(shí)器和綁定事件監(jiān)聽器。
const init = function () {
resetInactivityTimeout();
bindEvents();
};
// 定義一個(gè)名為resetInactivityTimeout的常量函數(shù),用于清除當(dāng)前計(jì)時(shí)器并重新設(shè)置一個(gè)新的計(jì)時(shí)器,如果inactivityTimeout內(nèi)沒有用戶活動(dòng),則執(zhí)行登出操作。
const resetInactivityTimeout = function () {
// 清除當(dāng)前存在的計(jì)時(shí)器。
clearTimeout(timer);
// 設(shè)置一個(gè)新的計(jì)時(shí)器,等待inactivityTimeout指定的毫秒數(shù)后執(zhí)行l(wèi)ogout函數(shù)。
timer = setTimeout(logout, inactivityTimeout);
};
// 定義一個(gè)名為bindEvents的常量函數(shù),用于綁定鼠標(biāo)移動(dòng)、按鍵和鼠標(biāo)點(diǎn)擊等事件,當(dāng)這些事件發(fā)生時(shí),調(diào)用resetInactivityTimeout函數(shù)重置計(jì)時(shí)器。
const bindEvents = function () {
// 監(jiān)聽鼠標(biāo)移動(dòng)事件,每當(dāng)鼠標(biāo)移動(dòng)時(shí),重置計(jì)時(shí)器。
document.addEventListener('mousemove', resetInactivityTimeout);
// 監(jiān)聽鍵盤按鍵事件,每當(dāng)用戶按下鍵盤鍵時(shí),重置計(jì)時(shí)器。
document.addEventListener('keydown', resetInactivityTimeout);
// 監(jiān)聽鼠標(biāo)點(diǎn)擊事件,每當(dāng)用戶點(diǎn)擊鼠標(biāo)時(shí),重置計(jì)時(shí)器。
document.addEventListener('mousedown', resetInactivityTimeout);
};
// 定義一個(gè)名為logout的常量函數(shù),用于執(zhí)行登出操作。
const logout = function () {
// 清除本地存儲(chǔ)的信息并跳轉(zhuǎn)到登錄頁面
// localStorage.removeItem('access_token');
// 當(dāng)調(diào)用logout函數(shù)時(shí),將頁面URL更改為'./Logout.php',從而實(shí)現(xiàn)頁面跳轉(zhuǎn)并登出系統(tǒng)。
window.location.href = './Logout.php';
};
// 初始化函數(shù)。檢查全局window對(duì)象上是否存在名為sessionTimeout的屬性。如果不存在,則將其定義為一個(gè)包含init方法的對(duì)象。
if (typeof window.sessionTimeout === 'undefined') {
// 將init函數(shù)作為一個(gè)屬性掛載到全局sessionTimeout對(duì)象上,使得在各頁面中可以通過sessionTimeout.init()來啟用無操作超時(shí)自動(dòng)登出功能。
window.sessionTimeout = {
init: init
};
}
})(window);到此這篇關(guān)于JS實(shí)現(xiàn)頁面長時(shí)間不操作退出到登錄頁面的文章就介紹到這了,更多相關(guān)js長時(shí)間不操作退出登錄頁面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
layer iframe 設(shè)置關(guān)閉按鈕的方法
今天小編就為大家分享一篇layer iframe 設(shè)置關(guān)閉按鈕的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09
chart.js實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁顯示拆線圖的效果
本文主要介紹了chart.js實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁顯示拆線圖的效果,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
微信小程序以ssm做后臺(tái)開發(fā)的實(shí)現(xiàn)示例
這篇文章主要介紹了微信小程序以ssm做后臺(tái)開發(fā)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
JavaScript自定義localStorage監(jiān)聽事件的解決方法
在項(xiàng)目開發(fā)過程中,發(fā)現(xiàn)有很多時(shí)候進(jìn)行l(wèi)ocalStorage.setItem()操作設(shè)置本地存儲(chǔ)后,頁面必須刷新才能夠獲取到存儲(chǔ)數(shù)據(jù),為了解決這個(gè)問題,就必須要用到自定義localStorage監(jiān)聽事件了,所以本文給大家介紹了自定義localStorage監(jiān)聽事件,需要的朋友可以參考下2024-10-10
關(guān)于在IE下的一個(gè)安全BUG --可用于跟蹤用戶的系統(tǒng)鼠標(biāo)位置
本篇文章小編將為大家介紹,關(guān)于在IE下的一個(gè)安全BUG --可用于跟蹤用戶的系統(tǒng)鼠標(biāo)位置。需要的朋友可以參考一下2013-04-04
通用javascript代碼判斷版本號(hào)是否在版本范圍之間
通用判斷版本號(hào)是否在兩者之間,也可以搭配判斷是否大于某版本號(hào),小于取反即可,本文給大家介紹通用javascript代碼判斷版本號(hào)是否在版本范圍之間,需要的朋友參考下2015-11-11

