>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 사용자 유휴 시간을 어떻게 감지할 수 있나요?

JavaScript에서 사용자 유휴 시간을 어떻게 감지할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-12-26 18:11:10158검색

How Can I Detect User Idle Time in JavaScript?

JavaScript에서 유휴 시간 감지

소개:

웹 개발에서 사용자 활동 이해 성능을 최적화하고 더 나은 사용자 경험을 제공하는 데 매우 중요합니다. 비활성 기간 또는 CPU 사용량이 낮은 기간으로 정의되는 유휴 시간을 감지하면 콘텐츠 사전 로드 또는 사용자 인증과 같은 작업을 트리거하는 데 도움이 될 수 있습니다.

JavaScript 구현:

탐지하려면 JavaScript의 유휴 시간에는 다음과 같은 바닐라 JavaScript 접근 방식을 활용할 수 있습니다.

코드 조각:

var inactivityTime = function () {
    var time;
    window.onload = resetTimer;
    // DOM Events
    document.onmousemove = resetTimer;
    document.onkeydown = resetTimer;

    function logout() {
        alert("You are now logged out.")
        //location.href = 'logout.html'
    }

    function resetTimer() {
        clearTimeout(time);
        time = setTimeout(logout, 3000)
        // 1000 milliseconds = 1 second
    }
};

사용법:

유휴 시간 감지를 초기화하려면 페이지가 끝난 후 inactivityTime() 함수를 호출하세요. 로드됨:

window.onload = function() {
  inactivityTime();
}

사용자 정의:

사용자 활동을 모니터링하기 위해 더 많은 DOM 이벤트를 추가할 수 있습니다. 가장 일반적으로 사용되는 이벤트는 다음과 같습니다.

document.onload = resetTimer;
document.onmousemove = resetTimer;
document.onmousedown = resetTimer; // touchscreen presses
document.ontouchstart = resetTimer;
document.onclick = resetTimer;     // touchpad clicks
document.onkeydown = resetTimer;   // onkeypress is deprectaed
document.addEventListener('scroll', resetTimer, true); // improved; see comments

더 나은 사용자 정의를 위해 배열을 사용하여 여러 이벤트를 등록할 수 있습니다.

window.addEventListener('load', resetTimer, true);
var events = ['mousedown', 'mousemove', 'keypress', 'scroll', 'touchstart'];
events.forEach(function(name) {
 document.addEventListener(name, resetTimer, true);
});

모니터링하는 이벤트를 사용자 정의하여 다음을 수행할 수 있습니다. 특정 애플리케이션의 요구 사항에 맞게 유휴 시간 감지를 맞춤화하세요.

위 내용은 JavaScript에서 사용자 유휴 시간을 어떻게 감지할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.