NavigationPreloadManager: setHeaderValue() 方法

安全上下文: 此功能仅在 安全上下文 (HTTPS) 中可用,在部分或所有 支持的浏览器 中可用。

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

NavigationPreloadManager 接口的 setHeaderValue() 方法设置 Service-Worker-Navigation-Preload 标头的值,该标头将在 fetch() 操作期间在服务工作者导航预加载期间发出的请求中发送。它返回一个空 Promise,该承诺将使用 undefined 解析。

预加载请求中 Service-Worker-Navigation-Preload 标头的存在允许服务器为预加载获取请求配置与正常获取请求不同的返回资源。默认指令设置为 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

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。