oninstall
和onactivate
事件之间有什么区别?他们什么时候开除?我应该使用哪个事件来初始化一生一次的操作,例如IndexedDB和WebSocket?
答案 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