Home > Web Front-end > JS Tutorial > How Can I Detect User Idle Time in JavaScript?

How Can I Detect User Idle Time in JavaScript?

Patricia Arquette
Release: 2024-12-26 18:11:10
Original
162 people have browsed it

How Can I Detect User Idle Time in JavaScript?

Detecting Idle Time in JavaScript

Introduction:

In web development, understanding user activity is crucial for optimizing performance and providing a better user experience. Detecting idle time, defined as a period of inactivity or low CPU usage, can help you trigger actions like preloading content or user authentication.

JavaScript Implementation:

To detect idle time in JavaScript, you can utilize the following vanilla JavaScript approach:

Code Snippet:

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
    }
};
Copy after login

Usage:

To initialize idle time detection, call the inactivityTime() function after the page has loaded:

window.onload = function() {
  inactivityTime();
}
Copy after login

Customization:

You can add more DOM events to monitor user activity. Some of the most commonly used events are:

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
Copy after login

For better customization, you can use an array to register multiple events:

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

By customizing the events you monitor, you can tailor idle time detection to fit your specific application's needs.

The above is the detailed content of How Can I Detect User Idle Time in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template