Heim >Web-Frontend >js-Tutorial >Wie kann man in JavaScript zwischen Seitenaktualisierung und Browser-Schließung unterscheiden?

Wie kann man in JavaScript zwischen Seitenaktualisierung und Browser-Schließung unterscheiden?

DDD
DDDOriginal
2024-11-03 17:42:29467Durchsuche

How to Distinguish Between Page Refresh and Browser Closure in JavaScript?

Identifizieren von Seitenaktualisierung und Browser-Schließung

Beim Auslösen des ONUNLOAD-Ereignisses wird es schwierig, zwischen der Aktualisierung einer Seite und dem Schließen des Browsers zu unterscheiden . Dieser Artikel stellt eine Lösung für dieses Problem vor.

Lösung

Diese Lösung nutzt den lokalen Speicher und die Server-Client-AJAX-Kommunikation von HTML5:

  1. Fenster-Entlade-Handler:

    • Registrieren Sie einen Onunload-Handler im Fenster.
    • Setzen Sie in diesem Handler ein lokales Speicherflag, um das Entladen der Seite anzuzeigen ( myUnloadEventFlag).
    • Senden Sie eine AJAX-Anfrage an den Server und bitten Sie den Benutzer, die Verbindung nach einer bestimmten Verzögerung (z. B. 5 Sekunden) zu trennen
  2. Body Load Handler:

    • Registrieren Sie einen Onload-Handler im Seitentext.
    • Überprüfen Sie in diesem Handler das lokale Speicherflag für das Entladeereignis.
    • Wenn die Differenz zwischen der aktuellen Zeit und der Zeit des Flags kleiner als die angegebene Verzögerung ist, wurde die Seite neu geladen und die Trennungsanforderung des Servers muss abgebrochen werden.
    • Andernfalls handelt es sich um eine Schließung des Browsers.
  3. Serververwaltung:

    • Führen Sie eine Liste der Trennungsanfragen.
    • Führen Sie einen Timer aus, der die Server regelmäßig überprüft Liste.
    • Wenn das Zeitlimit einer Anfrage abläuft, trennen Sie den Benutzer.
    • Wenn eine Stornierungsanforderung eingeht, entfernen Sie die entsprechende Trennungsanforderung aus der Liste.

Dieser Ansatz unterscheidet zwischen dem Schließen von Tabs/Fenstern und dem Neuladen von Seiten, indem er den Zeitpunkt von Entladeereignissen berücksichtigt. Es ist auf andere Ereignisse wie verfolgte Links und übermittelte Formulare anwendbar, indem Ereignishandler auf relevanten Seiten platziert werden.

Einschränkungen:

Diese Lösung erfordert lokale HTML5-Speicherunterstützung und möglicherweise nicht Funktioniert mit älteren Browsern wie MSIE7.

Das obige ist der detaillierte Inhalt vonWie kann man in JavaScript zwischen Seitenaktualisierung und Browser-Schließung unterscheiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn