跳到主要内容

Web API

Aworker 实现了近似 Service Worker API 的规范,提供了基本的 Request-Response 服务 API。

addEventListener('fetch', event => {
event.respondWith(new Response('hello world'));
});

Aworker 提供了常见的定义在 ServiceWorkerGlobalScope,WorkerGlobalScope 或者 WindowOrWorkerGlobalScope 中的 Web API。通常,这包括以下 Web API:

Aworker 生命周期

Aworker 从加载用户代码初始化到开始接收请求会有以下几个事件:

  • 'install': 用户代码完全加载完成后,第一个接收到的事件。程序可以开始在这个事件里加载缓存。
  • 'activate': 表示 Aworker 已经开始准备接收请求。
  • 'fetch': 表示请求事件。

Worker 实例被销毁前不会有事件。通常会由运行时保证在所有请求响应完毕后,Worker 实例才被回收。

监听 Aworker 的事件可以通过 Web EventTarget API,比如:

addEventListener('install', event => {
// initializing cache...
});

Event: 'install'

MDN: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/install_event

参数:

用户代码完全加载完成后,第一个接收到的事件

addEventListner('install', event => {
event.waitUntil(Promise.all([
cacheReady('http://example.com'),
]));
});

Event: 'activate'

MDN: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/activate_event

参数:

表示 Worker 实例已经开始准备接收请求。

addEventListner('activate', event => {
event.waitUntil(asyncOperation());
});

Event: 'fetch'

参数:

表示请求事件。

addEventListener('fetch', event => {
event.respondWith(new Response('hello world'));
});