ServiceWorkerGlobalScope:backgroundfetchfail 事件

可用性有限

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

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

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

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

ServiceWorkerGlobalScope 接口的 backgroundfetchfail 事件在 后台获取 操作失败时触发:也就是说,当获取中的至少一个网络请求未能成功完成时。

此事件不可取消,也不会冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("backgroundfetchfail", (event) => { })

onbackgroundfetchfail = (event) => { }

事件类型

一个 BackgroundFetchUpdateUIEvent

Event ExtendableEvent BackgroundFetchEvent BackgroundFetchUpdateUIEvent

事件属性

继承自其父级 BackgroundFetchEvent 的属性。

BackgroundFetchUpdateUIEvent.updateUI()

更新浏览器显示的用于显示获取操作进度的元素的 UI。

描述

后台获取 操作失败时(意味着单个网络请求中至少有一个未成功完成),浏览器会启动服务工作线程(如果需要),并在服务工作线程的全局作用域中触发 backgroundfetchfail 事件。

在后台获取 API 中,浏览器会向用户显示一个 UI 元素来指示操作的进度。在 backgroundfetchfail 处理程序中,服务工作线程可以更新该 UI 以显示操作已失败。为此,处理程序会调用事件的 updateUI() 方法,并传入新的标题和/或图标。

在此 backgroundfetchfail 的处理程序中,服务工作线程还可以清理该操作的任何相关数据。它还可以检索并存储任何成功的响应(例如,使用 Cache API)。要访问响应数据,服务工作线程会使用事件的 registration 属性。

示例

更新 UI

此事件处理程序会更新 UI,告知用户该操作已失败。

js
addEventListener("backgroundfetchfail", (event) => {
  event.updateUI({ title: "Could not complete download" });
});

规范

规范
Background Fetch
# dom-serviceworkerglobalscope-onbackgroundfetchfail

浏览器兼容性

另见