Baseline Widely available
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die match()
Methode der Cache
Schnittstelle gibt ein Promise
zurück, das auf die Response
aufgelöst wird, die mit der ersten übereinstimmenden Anfrage im Cache
Objekt verknüpft ist. Wenn keine Ãbereinstimmung gefunden wird, wird das Promise
auf undefined
aufgelöst.
match(request)
match(request, options)
Parameter
request
Der Request
, für den Sie versuchen, Antworten im Cache
zu finden. Dies kann ein Request
-Objekt oder eine URL-Zeichenfolge sein.
options
Optional
Ein Objekt, das Optionen für den match
Vorgang festlegt. Die verfügbaren Optionen sind:
ignoreSearch
Ein boolescher Wert, der angibt, ob die Abfragezeichenfolge in der URL ignoriert werden soll. Wenn beispielsweise auf true
gesetzt, würde der ?value=bar
Teil von http://foo.com/?value=bar
bei der Durchführung einer Ãbereinstimmung ignoriert werden. StandardmäÃig ist es false
.
ignoreMethod
Ein boolescher Wert, der, wenn auf true
gesetzt, verhindert, dass der Abgleichsvorgang die http
Methode von Request
validiert (normalerweise sind nur GET
und HEAD
erlaubt). StandardmäÃig ist es false
.
ignoreVary
Ein boolescher Wert, der, wenn auf true
gesetzt, dem Abgleichsvorgang mitteilt, dass kein VARY
Header-Abgleich durchgeführt werden soll â d.h. wenn die URL übereinstimmt, erhalten Sie eine Ãbereinstimmung, unabhängig davon, ob das Response
-Objekt einen VARY
Header hat. StandardmäÃig ist es false
.
Ein Promise
, das auf die erste Response
aufgelöst wird, die der Anfrage entspricht oder auf undefined
, wenn keine Ãbereinstimmung gefunden wird.
Hinweis:>Cache.match()
ist im Grunde identisch mit Cache.matchAll()
, auÃer dass es nicht mit einem Array von allen übereinstimmenden Antworten aufgelöst wird, sondern nur mit der ersten übereinstimmenden Antwort (das heiÃt, response[0]
).
Dieses Beispiel stammt aus dem benutzerdefinierten Offline-Seite Beispiel (Live-Demo). Es verwendet einen Cache, um ausgewählte Daten bereitzustellen, wenn ein Request fehlschlägt. Eine catch()
-Klausel wird ausgelöst, wenn der Aufruf von fetch()
eine Ausnahme auslöst. Innerhalb der catch()
-Klausel wird match()
verwendet, um die korrekte Antwort zurückzugeben.
In diesem Beispiel werden nur HTML-Dokumente, die mit dem GET HTTP Verb abgerufen wurden, zwischengespeichert. Wenn unsere if ()
Bedingung false ist, wird dieser Fetch-Handler die Anfrage nicht abfangen. Wenn andere Fetch-Handler registriert sind, erhalten sie die Gelegenheit, event.respondWith()
aufzurufen. Falls kein Fetch-Handler event.respondWith()
aufruft, wird die Anfrage von dem Browser so behandelt, als ob keine Service Worker-Beteiligung vorliegt. Wenn fetch()
eine gültige HTTP Antwort mit einem Antwortcode im Bereich 4xx oder 5xx zurückgibt, wird das catch()
nicht aufgerufen.
self.addEventListener("fetch", (event) => {
// We only want to call event.respondWith() if this is a GET request for an HTML document.
if (
event.request.method === "GET" &&
event.request.headers.get("accept").includes("text/html")
) {
console.log("Handling fetch event for", event.request.url);
event.respondWith(
fetch(event.request).catch((e) => {
console.error("Fetch failed; returning offline page instead.", e);
return caches
.open(OFFLINE_CACHE)
.then((cache) => cache.match(OFFLINE_URL));
}),
);
}
});
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4