Anfrage: isHistoryNavigation-Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die schreibgeschützte Eigenschaft isHistoryNavigation der Request-Schnittstelle ist ein Boolean, der angibt, ob die Anfrage eine Verlaufsnavigation ist.

Eine Verlaufsnavigation ist eine Navigation innerhalb des Browser-Verlaufs, die durch Aufrufen von History.go(), History.back(), History.forward(), Navigation.traverseTo(), Navigation.back(), Navigation.forward() oder direkt durch Klicken auf die Vor- oder Zurück-Schaltfläche des Browsers erfolgt.

Wert

Ein Boolean-Wert.

Beispiele

Dieses Beispiel wird in einem Service Worker ausgeführt. Es lauscht auf das fetch-Ereignis. Im Ereignis-Handler überprüft der Service Worker die isHistoryNavigation-Eigenschaft, um zu wissen, ob die Anfrage aufgrund einer Verlaufsnavigation erfolgt ist. Falls ja, versucht er mit einer im Cache gespeicherten Antwort zu antworten. Wenn der Cache keine Antwort für diese Anfrage enthält, holt der Service Worker eine Antwort aus dem Netzwerk, speichert einen Klon davon im Cache und antwortet mit der Netzwerkantwort.

js
self.addEventListener("request", (event) => {
  // …

  if (event.request.isHistoryNavigation) {
    event.respondWith(
      caches.match(event.request).then((response) => {
        if (response !== undefined) {
          return response;
        } else {
          return fetch(event.request).then((response) => {
            const responseClone = response.clone();

            caches.open("v1").then((cache) => {
              cache.put(event.request, responseClone);
            });

            return response;
          });
        }
      }),
    );
  }

  // …
});

Spezifikationen

Specification
Fetch
# ref-for-dom-request-ishistorynavigation①

Browser-Kompatibilität

Siehe auch