NavigateEvent: signal 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

NavigateEvent 接口的只读属性 signal 返回一个 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

浏览器兼容性

另见