ServiceWorker中的oninstall vs onactivate事件

时间:2015-04-16 04:44:20

标签: javascript service-worker

oninstallonactivate事件之间有什么区别?他们什么时候开除?我应该使用哪个事件来初始化一生一次的操作,例如IndexedDB和WebSocket?

1 个答案:

答案 0 :(得分:2)

oninstall事件是服务工作者收到的第一个事件,旨在用于缓存和数据库初始化等准备活动。

onactivate阶段完成后(当所有extend lifetime promises已解决时),installing事件被触发。此时,服务工作者可以完全运行,并且可以清理以前版本正在使用的资源。

onactivate事件将被延迟,直到传递给event.waitUntil(f)的承诺结算为止(如果已使用)。这可以确保工作人员在依赖关系准备就绪之前不会开始工作。

此MDN文章是一个有用的摘要:https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker_API/Using_Service_Workers#Basic_architecture

A flowchart summary of a Service Worker lifecycle.