NavigateEvent:signal 属性
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
NavigateEvent
接口的 signal
只读属性返回一个 AbortSignal
,如果导航被取消(例如,用户按下浏览器的“停止”按钮,或者另一个导航启动并因此取消正在进行的导航),该信号将被中止。
值
AbortSignal
对象。
示例
这里的总体思路是,可以将 signal
属性传递给相关的 fetch()
操作,这样,如果取消导航,则可以安全地中止 fetch()
操作,避免在不再需要的 fetch 请求上浪费带宽。
js
navigation.addEventListener("navigate", (event) => {
event.intercept({
async handler() {
// ...
await fetch(`/img/some-image.jpg`, { signal: event.signal });
// ...
},
});
});
备注: 请参阅示例:下一个/上一个按钮获取更详细的示例。
规范
Specification |
---|
HTML # dom-navigateevent-signal-dev |
浏览器兼容性
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示