請求:isHistoryNavigation 屬性

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

注意:此功能在 Web Workers 中可用。

Request 介面的只讀屬性 isHistoryNavigation 是一個布林值,指示請求是否是歷史導航。

歷史導航是透過呼叫 History.go()History.back()History.forward()Navigation.traverseTo()Navigation.back()Navigation.forward(),或直接點選瀏覽器後退或前進導航按鈕而在瀏覽器歷史記錄中進行的導航。

一個布林值。

示例

此示例在服務工作執行緒中執行。它監聽 fetch 事件。在事件處理程式中,服務工作執行緒會檢查 isHistoryNavigation 屬性,以瞭解請求是否是由於歷史導航而發生的。如果是,它會嘗試使用快取的響應進行響應。如果快取中不包含此請求的響應,服務工作執行緒會從網路獲取響應,快取其副本,並使用網路響應進行響應。

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

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

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

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

  // …
});

規範

規範
Fetch
# ref-for-dom-request-ishistorynavigation①

瀏覽器相容性

另見