BackgroundFetchRegistration
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die BackgroundFetchRegistration
Schnittstelle der Background Fetch API repräsentiert einen individuellen Hintergrundabruf.
Eine BackgroundFetchRegistration
Instanz wird von den Methoden BackgroundFetchManager.fetch()
oder BackgroundFetchManager.get()
zurückgegeben und hat daher keinen Konstruktor.
Instanzeigenschaften
Erbt auch Eigenschaften von ihrem Elternteil, EventTarget
.
BackgroundFetchRegistration.id
Nur lesbar Experimentell-
Ein String, der die ID des Hintergrundabrufs enthält.
BackgroundFetchRegistration.uploadTotal
Nur lesbar Experimentell-
Eine
number
, die die Gesamtzahl der zu ladenden Bytes enthält. BackgroundFetchRegistration.uploaded
Nur lesbar Experimentell-
Eine
number
, die die Größe in Bytes enthält, die erfolgreich gesendet wurde, anfangs0
. BackgroundFetchRegistration.downloadTotal
Nur lesbar Experimentell-
Eine
number
, die die Gesamtsgröße in Bytes dieses Downloads enthält. Dies ist der Wert, der beim Registrieren des Hintergrundabrufs gesetzt wurde, oder0
. BackgroundFetchRegistration.downloaded
Nur lesbar Experimentell-
Eine
number
, die die Größe in Bytes enthält, die heruntergeladen wurde, anfangs0
. BackgroundFetchRegistration.result
Nur lesbar Experimentell-
Gibt zunächst einen leeren String zurück, bei Abschluss entweder den String
"success"
oder"failure"
. BackgroundFetchRegistration.failureReason
Nur lesbar Experimentell-
Ein String mit einem Wert, der einen Grund für einen Hintergrundabruf-Fehler angibt. Kann einer der folgenden Werte sein:
""
,"aborted"
,"bad-status"
,"fetch-error"
,"quota-exceeded"
,"download-total-exceeded"
. BackgroundFetchRegistration.recordsAvailable
Nur lesbar Experimentell-
Ein
boolean
, das angibt, ob dasrecordsAvailable
Flag gesetzt ist.
Instanzmethoden
Erbt auch Methoden von ihrem Elternteil, EventTarget
.
BackgroundFetchRegistration.abort()
Experimentell-
Bricht den Hintergrundabruf ab. Gibt ein
Promise
zurück, das mittrue
aufgelöst wird, wenn der Abruf erfolgreich abgebrochen wurde. BackgroundFetchRegistration.match()
Experimentell-
Gibt ein einzelnes
BackgroundFetchRecord
Objekt zurück, das das erste übereinstimmende für die Argumente ist. BackgroundFetchRegistration.matchAll()
Experimentell-
Gibt ein
Promise
zurück, das mit einem Array vonBackgroundFetchRecord
Objekten aufgelöst wird, die Anfragen und Antworten enthalten.
Ereignisse
Erbt auch Ereignisse von ihrem Elternteil, EventTarget
.
Diese Ereignisse werden mit addEventListener()
oder durch Zuweisen eines Ereignis-Listeners zu der oneventname
Eigenschaft dieser Schnittstelle überwacht.
progress
Experimentell-
Wird ausgelöst, wenn sich eine der folgenden Eigenschaften ändert:
uploaded
,downloaded
,result
oderfailureReason
.
Beispiele
Der folgende Code erstellt eine BackGroundFetchRegistration
als bgFetch
, mit einer id
von "my-fetch"
.
navigator.serviceWorker.ready.then(async (swReg) => {
const bgFetch = await swReg.backgroundFetch.fetch(
"my-fetch",
["/ep-5.mp3", "ep-5-artwork.jpg"],
{
title: "Episode 5: Interesting things.",
icons: [
{
sizes: "300x300",
src: "/ep-5-icon.png",
type: "image/png",
},
],
downloadTotal: 60 * 1024 * 1024,
},
);
});
Das Protokollieren der id
in der Konsole gibt "my-fetch"
zurück.
console.log(bgFetch.id); // "my-fetch"
Die match()
Methode kann verwendet werden, um ein bestimmtes BackgroundFetchRecord
aus denen, die Teil der Registrierung sind, zu finden.
bgFetch.match("/ep-5.mp3").then(async (record) => {
if (!record) {
console.log("No record found");
return;
}
console.log(`Here's the request`, record.request);
const response = await record.responseReady;
console.log(`And here's the response`, response);
});
Spezifikationen
Specification |
---|
Background Fetch # background-fetch-registration |
Browser-Kompatibilität
BCD tables only load in the browser