前端每日一学:Service Worker —— 打造离线可用的 PWA 应用

场景

你需要实现 离线访问资源缓存后台同步 功能,提升 Web 应用的可靠性和用户体验。


一、核心概念

1. 什么是 Service Worker?
  • 浏览器在后台运行的 独立线程,可拦截网络请求
  • 生命周期:独立于页面,可控制多个页面
  • 要求 HTTPS:生产环境需 HTTPS,本地开发支持 localhost
2. 核心能力
  • 缓存管理:预缓存关键资源
  • 离线支持:无网络时返回缓存内容
  • 推送通知:后台消息推送
  • 后台同步:网络恢复后提交数据

二、实战代码示例

步骤 1:注册 Service Worker
// 主线程代码(如 main.js)
if ('serviceWorker' in navigator) {
   
  window.addEventListener('load', () => {
   
    navigator.serviceWorker.register('/sw.js')
      .then(registration => {
   
        console.log('SW 注册成功:', registration.scope);
      })
      .catch(err => {
   
        console.log('SW 注册失败:', err);
      });
  });
}
步骤 2:编写 Service Worker 文件(sw.js)
const CACHE_NAME = 'v1';
const PRECACHE_URLS = [
  '/',
  '/index.html',
  '/styles.css',
  '/app.js'
];

// 安装阶段:预缓存关键资源
self.addEventListener</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值