Heim > Web-Frontend > js-Tutorial > Wie kann ich zuverlässig AJAX-Anfragen senden und Skripte ausführen, bevor ein Benutzer ein Browserfenster schließt?

Wie kann ich zuverlässig AJAX-Anfragen senden und Skripte ausführen, bevor ein Benutzer ein Browserfenster schließt?

Patricia Arquette
Freigeben: 2024-11-30 14:30:15
Original
485 Leute haben es durchsucht

How Can I Reliably Send AJAX Requests and Execute Scripts Before a User Closes a Browser Window?

Verwalten des Fensterschließens für AJAX-Anfragen und -Skripte in JavaScript

Herausforderung

Benutzer können eine Webseite auf verschiedene Weise verlassen, einschließlich Schließen des Fensters oder Navigieren über eine andere URL weg. Es kann eine Herausforderung sein, den Zeitpunkt zu bestimmen, an dem ein Benutzer die Seite verlässt, und entsprechende Aktionen auszulösen.

Lösung

Aktualisiert 2024:

  • Beacon API: Die Beacon API bietet eine zuverlässige Lösung in modernen Browsern und stellt sicher, dass Anfragen auch dann abgeschlossen werden, wenn Benutzer die verlassen Seite.
  • Sichtbarkeitsänderungsereignis: Dieses Ereignis erfasst die letzte in den meisten Browsern beobachtbare Zustandsänderung, einschließlich Übergängen vom passiven in den verborgenen Zustand.

Implementierung

Sichtbarkeitsänderung Ereignis:

document.addEventListener('visibilitychange', function() {
  if (document.visibilityState === "hidden") {
    // Trigger AJAX request or run script
  }
});
Nach dem Login kopieren

Beacon-API:

var url = "https://example.com/foo";
var data = "bar";

navigator.sendBeacon(url, data);
Nach dem Login kopieren

Details

Die Beacon-API ist so konzipiert, dass sie Anfragen auch dann abschließt, wenn Benutzer die Seite verlassen. Es wird empfohlen, das VisibilityChange-Ereignis zu nutzen, um zu erkennen, wann der Benutzer die Seite verlassen hat, und an diesem Punkt die Beacon-Anfrage auszulösen.

Lifecycle.js-Bibliothek (für ältere Browser):

Aus Gründen der Kompatibilität mit älteren Browsern sollten Sie die Verwendung der lifecycle.js-Bibliothek zum Verwalten der Seite in Betracht ziehen Lebenszyklus.

Überlegungen

  • Adblocker: Adblocker können Beacon-Anfragen an bestimmte Tracking-Domains blockieren.
  • Cross-Site-Anfragen: Beacon-Anfragen folgen CORS-Einschränkungen und beinhalten Cookies. Stellen Sie daher sicher, dass die Konfiguration für Cross-Origin geeignet ist Anfragen.

Das obige ist der detaillierte Inhalt vonWie kann ich zuverlässig AJAX-Anfragen senden und Skripte ausführen, bevor ein Benutzer ein Browserfenster schließt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage