Une page laissée ouverte dans un onglet d’arrière-plan n’a peut-être pas besoin de continuer à animer ou à actualiser des données non critiques. L'événement visiblechange permet à une application de suspendre le travail facultatif lorsque le document est masqué et de le reprendre lorsqu'il est visible.
function updateActivity() {
if (document.hidden) {
stopOptionalPolling();
return;
}
refreshVisibleData();
}
document.addEventListener("visibilitychange", updateActivity);
updateActivity();Suspendre uniquement les travaux qui peuvent attendre en toute sécurité
- Maintenez la fiabilité de la persistance essentielle et des opérations déclenchées par l’utilisateur, quelle que soit la visibilité des onglets.
- Reprenez avec une nouvelle vérification d'état au lieu de supposer que chaque minuterie manquée s'est exécutée.
- Supprimez l’écouteur d’événements lorsque le contrôleur au niveau de la page est supprimé.
Les minuteries d’arrière-plan sont déjà limitées différemment selon les navigateurs. Considérez la visibilité comme un signal pour réduire le travail facultatif, et non comme un mécanisme de planification précis.
Testez en changeant d’onglet et en revenant après un délai. L'interface doit être actualisée à partir de son état actuel sans dupliquer une demande ni perdre les entrées de l'utilisateur.
