Wie kann der Benutzer mit Javascript feststellen, ob eine Seite gerade gelesen wird?

Ich erstelle eine Webseite mit dynamischem Inhalt, die bei AJAX-Abfragen in die Ansicht eingeht. Die Seite JS lädt gelegentlich aktualisierte Informationen herunter und rendert sie auf der Seite, während der Benutzer andere Informationen liest. Dies ist teuer für Bandbreite und Verarbeitungszeit. Ich möchte die Abfrage pausieren lassen, wenn die Seite nicht angezeigt wird.

Mir ist aufgefallen, dass die meisten von mir geöffneten Webseiten die meiste Zeit auf ein Minimum reduziert oder in einem nicht angezeigten Tab angezeigt werden. Ich möchte die Skripte anhalten können, bis die Seite tatsächlich angezeigt wird.

Ich habe keine Ahnung, wie es geht, und es scheint zu versuchen, aus der Sandbox des HTML-DOM auszubrechen und in das System des Benutzers zu greifen. Es kann unmöglich sein, wenn die JS-Engine keine Kenntnisse über ihre Rendering-Umgebung hat. Ich habe noch nie eine andere Seite gesehen, die dies tut (nicht, dass der Benutzer es sehen soll ...)

So ergibt sich daraus eine interessante Diskussionsfrage, denke ich. Wie würden Sie eine Webanwendung schreiben, die CPU-lastig ist, um anzuhalten, wenn sie nicht verwendet wird? Es ist nicht zuverlässig, dem Benutzer eine Pausentaste zu geben. Ich möchte, dass dies automatisch erfolgt.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage