H5离线储存-使用serverWorker实现

H5 离线存储-使用 serverWorker 实现

离线存储所用技术

serverWorker

serviceWorker 生命周期

  • install 事件会在 serviceWorker 注册成功时候触发,主要用于缓存资源

  • activate 事件会在 serviceWorker 激活的时候触发,主要用于删除旧的资源

  • fetch 事件会在发送请求的时候触发,主要用于操作缓存或者读取网络资源

    注意:

  • 如果 sw.js 发生了改变,install 事件会重新触发

  • activate 事件会在 install 事件后触发,但是如果现在已经存在 serviceWorker,就会处于等待状态直到 serviceWorker 终止

  • 可以通过self.skipWaiting()方法跳过等待,返回一个 promise 对象

  • 可以通过event.WautUntil()方法扩的参数是一个 promise 对象,会在 promise 结束后才会结束当前生命周期函数,防止浏览器在一步操作之前就停止了生命周期

  • serviceWorker 激活后,会在下一次刷新页面的时候生效,可以通过self.clients.claim()立即活的控制权

//在index.html 注册serverWorker方法
// 网页加载完成时注册
  window.addEventListener("load", () => {
   
    // 能力检测
    if ("serviceWorker" in navigator) {
   
      navigator.serviceWorker.register("./sw.js").then((res) => {
   
        console.log(res);
      });
    }
  });
//serverWorker 相关事件
self.addEventListener("install", (event) => {
   
  console.log("install", event);
  //skipWaiting 会让serviceworker跳过等待,直接进入activate
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值