NavigationPreloadManager: disable() 方法

Baseline 已广泛支持

此功能已经非常成熟,可在多种设备和浏览器版本上使用。自 2022 年 4 月以来,它已在各大浏览器中得到支持。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

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

NavigationPreloadManager 接口的 disable() 方法会停止之前使用 enable() 启动的、由 Service Worker 管理的资源的自动预加载。它返回一个解析为 undefined 的 Promise。

可以在 Service Worker 的 activate 事件处理程序中调用此方法(在调用 fetch 事件处理程序之前)。

语法

js
disable()

参数

无。

返回值

一个 Promise,它会解析为 undefined

异常

InvalidStateError DOMException

与此 NavigationPreloadManager 所属的注册关联的没有活动工作线程。

示例

下面的代码展示了如何在支持预加载后,使用 ServiceWorkerRegistration.navigationPreload 测试其支持性,然后禁用预加载。

js
addEventListener("activate", (event) => {
  event.waitUntil(
    (async () => {
      if (self.registration.navigationPreload) {
        // Disable navigation preloads!
        await self.registration.navigationPreload.disable();
      }
    })(),
  );
});

规范

规范
Service Workers
# dom-navigationpreloadmanager-disable

浏览器兼容性

另见

NavigationPreloadManager.enable()