Function soll nur laufen, wenn die Seite am Client angezeigt wird

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

seppim

Neues Mitglied
28 November 2020
2
0
1
46
Hallo,

ich habe eine Funktion die alle 2 Sekunden ein JSON von einem Server abruft und diese dann anzeigt.

Ich würde nun gerne die Funktion nur laufen lassen, wenn die Seite am Client sichtbar ist.
Gibt es da eine Möglichkeit?

Wenn man einen anderen Tab anzeigt, liegt die Seite im Hintergrund .. oder wenn ein anderes Programm sich über den Browser legt.

Danke!
 

basti1012

Senior HTML'ler
26 November 2017
1.521
167
63
Minden
sebastian1012.bplaced.net
Hee ?
Du öffnest eine Seite zb test.html.
In der läuft ein Javascript ( function ) die den JSON vom Server holt.
Dann ist die JSON da und die kannst du dann anzeigen lassen.
Du kannst die test Seite Leer lassen und sobald deine function die JSON geholt hat anzeigen lassen.
Ansonsten verstehe ich nicht was du meinst ?
 

themrdomi

Mitglied
11 Juni 2017
42
5
8
21
Ich glaube, es geht darum, die Funktion nur auszuführen, wenn der User die Seite aktiv benutzt, bzw. die Seite im Vordergrund ist.

Das kannst du beispielsweise so überprüfen:

Javascript:
if (!document.hidden) {
    console.log('Visible')
} else {
    console.log('Hidden')
}
 
  • Like
Reaktionen: seppim

jonas3344

Mitglied
25 Oktober 2019
78
26
18
37
This property is described as "historical" in the Page Visibility Level 2 specification. Consider using the Document.visibilityState property instead.