"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso detectar o tempo ocioso do usuário em JavaScript?

Como posso detectar o tempo ocioso do usuário em JavaScript?

Publicado em 2024-12-21
Navegar:489

How Can I Detect User Idle Time in JavaScript?

Detectando tempo ocioso em JavaScript

Introdução:

No desenvolvimento web, entendendo a atividade do usuário é crucial para otimizar o desempenho e fornecer uma melhor experiência ao usuário. A detecção do tempo ocioso, definido como um período de inatividade ou baixo uso da CPU, pode ajudá-lo a acionar ações como pré-carregamento de conteúdo ou autenticação do usuário.

Implementação de JavaScript:

Para detectar tempo ocioso em JavaScript, você pode utilizar a seguinte abordagem JavaScript básica:

Snippet de código:

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
    }
};

Uso:

Para inicializar a detecção de tempo ocioso, chame a função inactivityTime() após o carregamento da página:

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

Personalização:

Você pode adicionar mais eventos DOM para monitorar a atividade do usuário. Alguns dos eventos mais comumente usados ​​são:

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

Para melhor personalização, você pode usar um array para registrar vários eventos:

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

Ao personalizar os eventos que você monitora, você pode adaptar a detecção de tempo ocioso para atender às necessidades específicas do seu aplicativo.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3