Beacon API

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

Die Beacon API wird verwendet, um eine asynchrone und nicht blockierende Anfrage an einen Webserver zu senden. Die Anfrage erwartet keine Antwort. Im Gegensatz zu Anfragen, die mit XMLHttpRequest oder der Fetch API gemacht werden, garantiert der Browser, dass Beacon-Anfragen initiiert werden, bevor die Seite entladen wird, und dass sie vollständig ausgeführt werden.

Der Hauptanwendungsfall für die Beacon API besteht darin, Analysen wie clientseitige Ereignisse oder Sitzungsdaten an den Server zu senden. Historisch haben Websites dafür XMLHttpRequest verwendet, aber Browser garantieren nicht, dass diese asynchronen Anfragen in einigen Fällen gesendet werden (zum Beispiel, wenn die Seite gerade entladen wird). Um dem entgegenzuwirken, haben Websites auf verschiedene Techniken zurückgegriffen, wie das Synchronisieren der Anfrage, was sich negativ auf die Reaktionsfähigkeit auswirkt. Da Beacon-Anfragen sowohl asynchron sind als auch garantiert gesendet werden, kombinieren sie gute Leistungseigenschaften und Zuverlässigkeit.

Für weitere Informationen über die Motivation und Nutzung dieser API siehe die Dokumentation zur navigator.sendBeacon() Methode.

Hinweis: Diese API ist nicht verfügbar in Web Workers (nicht verfügbar über WorkerNavigator).

Schnittstellen

Diese API definiert eine einzelne Methode: navigator.sendBeacon().

Die Methode nimmt zwei Argumente, die URL und die Daten, die in der Anfrage gesendet werden sollen. Das Datenargument ist optional, und sein Typ kann ein String, ein ArrayBuffer, ein TypedArray, ein DataView, ein ReadableStream, ein Blob, ein FormData-Objekt oder ein URLSearchParams-Objekt sein. Wenn der Browser die Anfrage erfolgreich zur Lieferung in die Warteschlange stellt, gibt die Methode true zurück; andernfalls false.

Spezifikationen

Specification
Beacon
# sendbeacon-method

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
sendBeacon

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

Siehe auch