1. ServiceWorkerContainer service container 即navigator.serviceWorker对象 具有以下属性和方法 及事件
一. 事件
oncontrollerchange 事件, 触发时机: 当控制的sw脚本更新的时候触发
onerror事件,当sw脚本传递信息失败时触发
onmessage事件, 当service woker 工作scope是 通过postmessage传递信息触发
二.方法
register: 注册sw脚本 返回一个promise 参数为脚本的url 注意只能加载同域的脚本 和localhost
getRegistration: 获取注册成功的注册对象 参数为传递给register的scope参数
三.属性
controller:返回当前的service对象, 前提是当前页面已受到service woker的管理 即当前的状态是activing和actived 否则返回空 使用它可以判断当前是否有已激活的service worker
2. ServiceWorkerRegistration对象 即注册成功返回的注册对象
一. 事件
onupdatefound 事件, 触发时机: 当前的state改变的时候 即在service 工作scope是 触发 install和active事件的时候, 每次触发需更新的时候可以获取serviceworker
二.方法
navigationPreload: 重新加载页面
update:更新servicer和注册方法类似 返回一个promises
unregister 卸载当前service worker
三.属性
属性主要获取service worker对象 主要有以下属性
active, installing, waiting , 三个属性
和全局作用域一样
4.ServiceWorker对象
二.方法
onstatechange:state改变就会被触发 状态值installing, installed, activating, activated, or redundant.