NavigationPreloadManager: getState() 方法

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

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

getState() 方法是 NavigationPreloadManager 接口的一部分,它返回一个 Promise,该 Promise 解析为一个对象,其中包含指示是否启用了预加载以及将在 Service-Worker-Navigation-Preload HTTP 标头中发送的值的属性。

语法

js
getState()

参数

无。

返回值

一个 Promise,它解析为一个具有以下属性的对象

enabled

如果启用了预加载,则为 true,否则为 false

headerValue

一个字符串,包含在预加载 fetch() 之后的 Service-Worker-Navigation-Preload HTTP 标头中发送的值。除非使用 NavigationPreloadManager.setHeaderValue() 更改了值,否则默认为 true

异常

InvalidStateError DOMException

与该 NavigationPreloadManager 所属注册相关的活动工作者不存在。

示例

以下代码演示了在服务工作者准备好后对当前状态的请求。

js
navigator.serviceWorker.ready
  .then((registration) => registration.navigationPreload.getState())
  .then((state) => {
    console.log(state.enabled); // boolean
    console.log(state.headerValue); // string
  })
  .catch((e) =>
    console.error(`NavigationPreloadManager not supported: ${e.message}`),
  );

规范

规范
服务工作者
# dom-navigationpreloadmanager-getstate

浏览器兼容性

BCD 表仅在浏览器中加载