Je crée une page Web avec un contenu dynamique qui entre dans la vue avec l'interrogation AJAX. La page JS télécharge occasionnellement des informations mises à jour et les affiche sur la page pendant que l'utilisateur lit d'autres informations. Ce genre de chose est coûteux en bande passante et en temps de traitement. Je souhaite que la relève d'interrogation soit effectuée lorsque la page n'est pas affichée.Comment savoir si une page est en cours de lecture par l'utilisateur avec Javascript?
J'ai remarqué que la plupart des pages Web que j'ai ouvertes passent la majorité de leur temps réduites ou dans un onglet non consulté. J'aimerais pouvoir mettre les scripts en pause jusqu'à ce que la page soit réellement affichée.
Je n'ai aucune idée de comment le faire, et il semble essayer de sortir du sandbox du DOM html et atteindre le système de l'utilisateur. Cela peut être impossible si le moteur JS n'a aucune connaissance de son environnement de rendu. Je n'ai même jamais vu un site différent faire cela (pas que l'utilisateur est destiné à le voir ...)
Donc, il fait une question intéressante pour la discussion, je pense. Comment écririez-vous une application Web qui est lourde de CPU pour faire une pause quand elle n'est pas utilisée? Donner à l'utilisateur un bouton de pause n'est pas fiable, je voudrais que ce soit automatique.
Vous souhaitez un mécanisme pour redémarrer les mises à jour lorsque l'activité a repris. – Benry
Ajoutez simplement cela à la fonction onmouseover (voir la réponse mise à jour) –
Ne fera pas glisser la souris sur l'écran une seule fois cause environ mille appels cleartimeout() setTimer()? Est-ce que ça va? – Karl