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
参数:
- event <ExtendableEvent>
用户代码完全加载完成后,第一个接收到的事件
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
参数:
- event <ExtendableEvent>
表示 Worker 实例已经开始准备接收请求。
addEventListner('activate', event => {
event.waitUntil(asyncOperation());
});
Event: 'fetch'
参数:
- event <FetchEvent>
表示请求事件。
addEventListener('fetch', event => {
event.respondWith(new Response('hello world'));
});