⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Service Worker 离线缓存

Service Worker:生命周期(install/waiting/activate/fetch)、Cache API缓存策略(Cache First/Network First/Stale While Revalidate)、离线PWA、Background Sync后台同步 · 难度:入门 · +10XP

Service Worker —— 让网页离线也能用

Service Worker是运行在浏览器后台的JavaScript线程,可以拦截网络请求、缓存资源、推送通知。它是PWA(渐进式Web应用)的核心技术。

注册Service Worker

// 主页面
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js').then(reg => {
    console.log('Service Worker 注册成功');
  });
}

sw.js —— 缓存策略

const CACHE_NAME = 'v1';
self.addEventListener('install', event => {
  event.waitUntil(
    caches.open(CACHE_NAME).then(cache =>
      cache.addAll(['/', '/style.css', '/app.js'])
    )
  );
});
self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request).then(response =>
      response || fetch(event.request)
    )
  );
});

动手练习

  1. 基础练习:注册一个Service Worker,缓存首页HTML/CSS/JS。
  2. 进阶应用:实现"缓存优先,网络更新"策略——先返回缓存,再后台更新。
  3. 项目实战:用Workbox(Google的SW工具库)给你的网站添加离线支持。
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 231 篇
0 完成
🔥 0