NavigationPreloadManager: setHeaderValue() 方法

Baseline 已廣泛支援

此功能已經非常成熟,可在多種裝置和瀏覽器版本上使用。自 2022 年 4 月以來,它已在各大瀏覽器中得到支援。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

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

NavigationPreloadManager 介面的 setHeaderValue() 方法用於設定在服務工作執行緒導航預載入期間由 fetch() 操作產生的請求中傳送的 Service-Worker-Navigation-Preload 標頭的值。它返回一個空的 Promise,該 Promise 解析為 undefined

在預載入請求中包含 Service-Worker-Navigation-Preload 標頭,可以使伺服器能夠為預載入的 fetch 請求配置與普通 fetch 請求不同的返回資源。預設指令設定為 true:此方法允許配置多個不同的響應以進行預載入請求的可能性。

注意: 如果設定此標頭可能導致不同的響應,伺服器必須設定 Vary: Service-Worker-Navigation-Preload 以確保不同響應被快取。

語法

js
setHeaderValue(value)

引數

value

任意字串值,目標伺服器使用該值來確定要返回的請求資源。

返回值

一個 Promise,它會解析為 undefined

異常

InvalidStateError DOMException

與此 NavigationPreloadManager 所屬的註冊關聯的沒有活動工作執行緒。

示例

下面的程式碼演示瞭如何設定該值。

js
navigator.serviceWorker.ready
  .then((registration) =>
    registration.navigationPreload.setHeaderValue(newValue),
  )
  .then(() => console.log("Done!"))
  .catch((e) =>
    console.error(`NavigationPreloadManager not supported: ${e.message}`),
  );

規範

規範
Service Workers
# dom-navigationpreloadmanager-setheadervalue

瀏覽器相容性