ServiceWorker 担任了服务器与浏览器的中间人角色,如果网站中注册了 ServiceWorker 那么它可以拦截当前网所有的请求,并做相应的处理动作。 ServiceWorker 内容就是一段 JavaScript 脚本,内部可以编写相应的处理逻辑,比如对请求进行缓存处理,能直接使用缓存的就直接返回缓存不再转给服务器,从而大大提高浏览体验。有些开源工具包存在多个 CDN 站点,使用 ServiceWorker 可以实现自动寻找访问最快的站点,如果某个站点发生错误,可以自动切换,FreeCDN 便是借此实现的。