Maison > interface Web > js tutoriel > Comment puis-je détecter les temps d'inactivité dans JavaScript pour optimiser la prélecture et le préchargement du contenu ?

Comment puis-je détecter les temps d'inactivité dans JavaScript pour optimiser la prélecture et le préchargement du contenu ?

DDD
Libérer: 2024-12-26 02:30:10
original
359 Les gens l'ont consulté

How Can I Detect Idle Time in JavaScript to Optimize Content Pre-fetching and Pre-loading?

Détection du temps d'inactivité en JavaScript : un guide pour la prélecture et le préchargement du contenu

Dans le développement Web, la détection du temps d'inactivité peut être cruciale pour optimiser l'expérience utilisateur. Le temps d'inactivité, défini comme une période d'inactivité de l'utilisateur ou d'utilisation minimale du processeur, offre la possibilité de pré-récupérer ou de précharger du contenu, réduisant ainsi les temps de chargement des pages et améliorant la réactivité.

Implémentation de la détection des temps d'inactivité dans Vanilla JavaScript

Pour activer la détection des temps d'inactivité dans Vanilla JavaScript, utilisez l'approche suivante :

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
    }
};
Copier après la connexion

Initialisation et Personnalisations

Une fois la fonction inactivityTime définie, initialisez-la là où vous le souhaitez (par exemple, onPageLoad) :

window.onload = function() {
  inactivityTime();
}
Copier après la connexion

Vous pouvez personnaliser davantage les écouteurs d'événements en ajoutant d'autres événements DOM, notamment :

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
Copier après la connexion

Ou enregistrez les événements de manière dynamique à l'aide d'un tableau :

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

Notez que window.onscroll ne se déclenchera pas si le défilement se produit dans un élément défilant. Pour résoudre ce problème, incluez le troisième argument dans window.addEventListener('scroll', resetTimer, true) pour capturer l'événement pendant la phase de capture.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal