我们知道web worker是一个独立的线程
。而Service Worker是一个独立的进程
Service Worker基于WebWorker,继承webworker的各种特性。
Service Worker理解为一个介于客户端和服务端之间的一个代理服务器
。
- serviceWorker是浏览器进程。webWorker是浏览器内核的线程
- serviceWorker不会因为浏览器关闭而销毁
- serviceWorker可以多页面使用(同一个服务,serviceWorker可以服务全部,webWorker是一一对应的)
- serviceWorker只能被使用在
https
或者localhost
中
功能
- 拦截客户端的请求
- 向客户端发送消息
- 向服务器发送请求
- ...
- 最重要的作用是
资源缓存
,对fetch
进行拦截 可以处理首屏加载过慢的问题,提高性能。