service worker
使用步骤
<script>
// 1 在网页加载完成的时候 注册 service worker
window.addEventListener('load', () => {
// 2 能力检测
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('./sw.js').then(registration => {
console.log(registration);
}).catch(err=>{
console.log(err);
})
}
})
self.addEventListener('install', event => {
console.log('install',event);
// 会让 service worker 跳过等待 直接激活进入到 activate 状态
// self.skipWaiting()
// 等待 skipWaiting 结束 才进入到 activate
event.waitUntil(self.skipWaiting())
})
self.addEventListener('activate', event => {
console.log('activate',event);
// 表示 service worker 激活后, 立即获取控制权
event.waitUntil(self.clients.claim())
})
// fetch 事件会在请求发送的时候触发
self.addEventListener('fetch', event => {
console.log('fetch',event);
})
---------------
fetch
// window 对象上有fetch属性
fetch('./data.json').then(res=>{
// res 请求得到的响应内容, 二进制的流
// 调用 res.json()方法 可以把数据变成 json 格式
// console.log(res);
return res.json()
}).then( data =>{
console.log(data);
})
--------------------