Heim >Web-Frontend >js-Tutorial >Wie kann man zwischen einer Browseraktualisierung und einem Fensterschließen unterscheiden?
Unterscheidung zwischen Aktionen zum Aktualisieren und Schließen des Browsers
Die Unterscheidung zwischen dem Aktualisieren einer Seite und dem Schließen eines Browsers kann schwierig erscheinen, da beide Aktionen ausgelöst werden das ONUNLOAD-Ereignis. Es gibt jedoch eine Lösung für dieses Rätsel.
Lösung:
Dieser Ansatz nutzt den lokalen HTML5-Speicher und die Server-Client-Kommunikation:
ONUNLOAD-Handler: Fügen Sie auf der Seite mithilfe von einen On-Unload-Handler zum Fenster hinzu Pseudo-JavaScript:
<code class="javascript">function myUnload(event) { if (window.localStorage) { window.localStorage['myUnloadEventFlag'] = new Date().getTime(); } askServerToDisconnectUserInAFewSeconds(); // Synchronous AJAX call }</code>
Diese Funktion:
ONLOAD Handler: Fügen Sie am Körper einen On-Load-Handler hinzu:
<code class="javascript">function myLoad(event) { if (window.localStorage) { var t0 = Number(window.localStorage['myUnloadEventFlag']); if (isNaN(t0)) t0 = 0; var t1 = new Date().getTime(); var duration = t1 - t0; if (duration < 10 * 1000) { // Browser reload askServerToCancelDisconnectionRequest(); // Asynchronous AJAX call } else { // Tab/window close // Perform desired actions (e.g., do nothing) } } }</code>
Diese Funktion:
Diese Lösung dient zur Unterscheidung zwischen Tab-/Fensterschließungen, Neuladeaktionen, verfolgten Links und übermittelten Formularen. Es ist in Browsern mit HTML5-Local-Storage-Unterstützung anwendbar. Beachten Sie jedoch, dass es auf dem Entladeereignis basiert und möglicherweise nicht mit älteren Browsern wie MSIE7 kompatibel ist.
Das obige ist der detaillierte Inhalt vonWie kann man zwischen einer Browseraktualisierung und einem Fensterschließen unterscheiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!