使用?JS?判斷用戶是否處于活躍狀態(tài)的案例詳解
有時(shí)候,我們需要在網(wǎng)頁判斷用戶是否處與非活躍狀態(tài),如果用戶長時(shí)間沒有在頁面上進(jìn)行任何操作,我們則判定該用戶是非活躍的。 在 javascript 中我們可以通過監(jiān)聽某些鼠標(biāo)或鍵盤相關(guān)的事件來判定用戶是否在活躍中。
案例演示
在線演示 - 使用 JS 判斷用戶是否處于活躍狀態(tài)
實(shí)現(xiàn)代碼
案例演示了如何獲取用戶活躍狀態(tài),時(shí)間閾值定為5秒,超出該閾值沒有操作表示非活躍,否則屬于正在活躍中
html
<p id="userState"></p>
js
//活躍狀態(tài),true活躍中,false非活躍 let state = false; //定時(shí)器 let timer = null; //非活躍判定閾值,5秒沒有任何活動(dòng)表示非活躍 let timeout = 5000; //用于展示狀態(tài)信息的html元素 let userStateEl = document.getElementById('userState'); //批量添加事件監(jiān)聽 [ 'mousemove', //鼠標(biāo)移動(dòng) 'mousedown', //鼠標(biāo)按下 'touchstart', //觸摸屏幕(移動(dòng)端) 'wheel', //鼠標(biāo)滾輪 'resize', //頁面尺寸變化 'keydown', //鍵盤輸入 ] .map(event =>{ window.addEventListener(event, onActive) }) //觸發(fā)活躍中 function onActive(){ //更新狀態(tài) state = true; renderState(); //重置定時(shí)器 clearTimeout(timer); timer = setTimeout(() =>{ state = false; renderState(); }, timeout); } //更新狀態(tài)信息 function renderState(){ if(state){ userStateEl.textContent = "活躍中 " } else { userStateEl.textContent = "?非活躍狀態(tài)" } } //立刻觸發(fā)一次活躍中 onActive();
到此這篇關(guān)于如何使用 JS 判斷用戶是否處于活躍狀態(tài)的文章就介紹到這了,更多相關(guān)如何使用 JS 判斷用戶是否處于活躍狀態(tài)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS Range HTML文檔/文字內(nèi)容選中、庫及應(yīng)用介紹
本文的內(nèi)容基本上是基于“區(qū)域范圍對象(Range objects)”這個(gè)概念來說的2011-05-05JS生態(tài)系統(tǒng)加速eslint解析器使用實(shí)例探索
這篇文章主要為大家介紹了JS生態(tài)系統(tǒng)加速之eslint解析器使用實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01點(diǎn)擊進(jìn)行復(fù)制的JS代碼實(shí)例
這篇文章介紹了點(diǎn)擊進(jìn)行復(fù)制的JS代碼實(shí)例,有需要的朋友可以參考一下2013-08-08如何用JS判斷數(shù)組中是否存在某個(gè)值或者某個(gè)對象的值
數(shù)組是我們編程中經(jīng)常使用的的數(shù)據(jù)結(jié)構(gòu)之一,在處理數(shù)組時(shí),我們經(jīng)常需要在數(shù)組中查找特定的值,下面這篇文章主要給大家介紹了關(guān)于如何用JS判斷數(shù)組中是否存在某個(gè)值或者某個(gè)對象的值的相關(guān)資料,需要的朋友可以參考下2023-01-01詳解javascript立即執(zhí)行函數(shù)表達(dá)式IIFE
本文主要介紹了javascript立即執(zhí)行函數(shù)表達(dá)式IIFE的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02微信小程序中如何使用flyio封裝網(wǎng)絡(luò)請求
這篇文章主要介紹了微信小程序中如何使用flyio封裝網(wǎng)絡(luò)請求,F(xiàn)ly.js 通過在不同 JavaScript 運(yùn)行時(shí)通過在底層切換不同的 Http Engine來實(shí)現(xiàn)多環(huán)境支持,但同時(shí)對用戶層提供統(tǒng)一、標(biāo)準(zhǔn)的Promise API,需要的朋友可以參考下2019-07-07js 鍵盤記錄實(shí)現(xiàn)(兼容FireFox和IE)
用js實(shí)現(xiàn)鍵盤記錄,要關(guān)注瀏覽器的三種按鍵事件類型,即keydown,keypress和keyup,它們分別對應(yīng)onkeydown、onkeypress和onkeyup這三個(gè)事件句柄。一個(gè)典型的按鍵會(huì)產(chǎn)生所有這三種事件,依次是keydown,keypress,然后是按鍵釋放時(shí)候的keyup。2010-02-02JavaScript實(shí)現(xiàn)星座查詢功能 附詳細(xì)代碼
最近小編在做一個(gè)項(xiàng)目,其中涉及到一個(gè)模塊關(guān)于星座查詢功能,即在文本框中輸入一個(gè)生日值,點(diǎn)擊按鈕可以得到對應(yīng)的星座,怎么實(shí)現(xiàn)這個(gè)需求呢?下面小編通過示例代碼給大家介紹下,需要的朋友參考下吧2021-11-11