浏览器与网络-面试-ServiceWorker与离线
2026年10月16日·Admin·1 次浏览
面试题:Service Worker 是什么?和 Web Worker 区别?
Service Worker
- 独立于页面的 JS 线程,可做网络代理(
fetch拦截)、缓存策略、推送、后台同步。 - HTTPS 环境注册(localhost 例外);生命周期:install → activate → idle;更新需** clients.claim** 等配合。
与 Web Worker
| Service Worker | Web Worker | |
|---|---|---|
| 生命周期 | 站点级,可无页面存活 | 随创建它的页面/任务 |
| 能力 | 拦截网络、离线缓存 | 算力卸载,不拦截导航请求 |
| 典型用途 | PWA、离线包 | 大计算、图像处理 |
缓存策略(口述)
Cache First / Network First / Stale-While-Revalidate 等,需处理版本更新与缓存清理。