9.web worker和service worker

# 9.web worker和service worker

# 共同点

两者都运行在浏览器的独立线程里,不直接阻塞主线程,也都不能直接操作 DOM。

# 区别

  • Web Worker:为计算密集型任务服务,重点是“把耗时 JS 运算挪出主线程”。
  • Service Worker:为网络代理和离线能力服务,重点是“拦截请求、缓存资源、支持离线”。

# Web Worker 适合做什么

  • 大数据计算
  • 图片处理
  • 文本解析
  • 复杂加解密

# Service Worker 适合做什么

  • 离线缓存
  • 资源预缓存
  • 网络兜底
  • 消息推送

# 使用时要注意

  • Web Worker 和主线程之间靠 postMessage 通信。
  • Service Worker 有生命周期,需要处理安装、激活和更新。
  • Service Worker 只能在 HTTPS 或本地环境下使用。

# 结论

如果目标是“提升计算性能”,优先考虑 Web Worker;如果目标是“增强网络能力和离线体验”,优先考虑 Service Worker。

Last Updated: 9/25/2026, 2:08:32 PM