ServiceWorker II
ServiceWorker 全局上下文
ServiceWorkerGlobalScope 接口代表 ServiceWorker 的全局上下文,在 ServiceWorker 内通过 self 全局变量或者 globalThis 全局变量访问(该接口继承自 WorkerGlobalScope)。
ServiceWorkerGlobalScope
以下代表在 ServiceWorkerGlobalScope 接口本身的属性、方法和事件:
ServiceWorkerGlobalScope接口的clients属性代表一个Clients实例,可用于获取Client(可执行上下文)实例。ServiceWorkerGlobalScope接口的registration属性代表一个ServiceWorkerRegistration实例,即当前 ServiceWorker 注册的引用。ServiceWorkerGlobalScope接口的serviceWorker属性代表一个ServiceWorker实例,即当前 ServiceWorker 实例的引用。ServiceWorkerGlobalScope接口的skipWaiting方法强制当前 ServiceWorker 从等待状态变成激活状态,返回一个该 ServiceWorker 激活后完成的 Promise。其在 install 事件的回调中调用才具有实际意义。
WorkerGlobalScope
以下代表继承自 WorkerGlobalScope 接口的属性、方法和事件:
WorkerGlobalScope接口的location属性代表一个WorkerLocation实例,是Location的字集。WorkerGlobalScope接口的navigator属性代表一个WorkerNavigator实例,是Navigator的字集。WorkerGlobalScope接口的self属性代表WorkerGlobalScope接口本身。WorkerGlobalScope接口的importScripts方法同步导入一组脚本文件并执行,接受一组参数,代表脚本文件的 URL,其可以为绝对路径或相对路径(相对文档路径)。WorkerGlobalScope接口的error事件在 ServiceWorker 内发生脚本错误时触发,返回一个Event实例。WorkerGlobalScope接口的languagechange事件在用户的首选语言更改时触发,返回一个Event实例。WorkerGlobalScope接口的online事件在浏览器获得网络访问权限并且navigator.onLine值切换到true时触发,返回一个Event实例。WorkerGlobalScope接口的offline事件在浏览器获得网络访问权限并且navigator.onLine值切换到false时触发,返回一个Event实例。WorkerGlobalScope接口的rejectionhandled事件在 ServiceWorker 内处理的 Promise 拒绝事件时触发,返回一个Event实例。WorkerGlobalScope接口的unhandledrejection事件在 ServiceWorker 内未处理的 Promise 拒绝事件时触发,返回一个Event实例。
以下代表暴露在全局的属性、方法和事件:
1 | self.fonts |
1 | self.atob() |
示例
- https://github.com/skyclouds2001/Frontend-Learning/blob/main/next-learning/service-worker.html
- https://github.com/skyclouds2001/Frontend-Learning/blob/main/next-learning/service-worker.js
类型
1 | interface ServiceWorkerGlobalScope extends WorkerGlobalScope { |
链接
ServiceWorker II
https://skyclouds2001.github.io/2023/09/20/ServiceWorker-II/

