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