NavigateEvent:signal 属性

有限可用性

此功能不是基线,因为它在一些最常用的浏览器中不起作用。

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

signalNavigateEvent 接口的只读属性,它返回一个 AbortSignal,如果导航被取消(例如,用户按下浏览器的“停止”按钮,或者另一个导航开始并因此取消了正在进行的导航),它将变为中止状态。

一个 AbortSignal 对象。

示例

这里的一般想法是,signal 属性可以传递给一个关联的 fetch() 操作,因此如果导航被取消,fetch() 操作可以安全地中止,避免浪费带宽在不再需要的提取上。

js
navigation.addEventListener("navigate", (event) => {
  event.intercept({
    async handler() {
      // ...

      await fetch(`/img/some-image.jpg`, { signal: event.signal });

      // ...
    },
  });
});

注意:有关更详细的示例,请参阅 示例:下一个/上一个按钮

规范

规范
HTML 标准
# dom-navigateevent-signal-dev

浏览器兼容性

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

另请参见