使用React官方的脚手架工具create-react-app创建的项目,目录中会存在registerServiceWorker.js这个文件。这个文件可以使用也可以不使用,使用它可以使你的react项目变成一个PWA(Progressive Web Application), 也就是说,在线上,只要访问过一次你的网站,下一次即使没有网络,这个应用依然可以被访问。需要注意的是,只有打包生成线上版本的react项目时,registerServiceWorker.js才会有效。本地开发时,这个文件没什么效果,因为如果本地开发使用这个文件,有可能会因为缓存造成调试问题。
还需要注意的是,项目在本地,通过localhost域名访问,支持http协议。如果真正放到线上,如果想让registerServiceWorker.js生效,服务器必须采用https协议,这也是为什么很多同学本地测试好用,线上就不好用的原因。
在开发中,注册一个服务来为本地缓存提供服务。这使得应用程序在随后的访问中加载更快,并给出离线脱机的能力。但是,这也意味着开发人员将只看到部署在“N + 1”页面上的更新,因为以前缓存资源在后台更新。核心就是使用serviceWorker来进行缓存。
精华帖
https://blog.csdn.net/qq_17347575/article/details/80109046
https://segmentfault.com/a/1190000012353473?utm_source=tag-newest
https://www.jianshu.com/p/0e2dee4c77bc