9.web worker和service worker
wabicai
# 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。