上面这些代码demo在 https://github.com/craigbuckler/pwa-retrofit
上面只简单讲了 Service Worker 如何工作 。我们会发现有很多问题需要我们进一步解决:
- 预缓存的静态资源修改后在下一次发版本时的文件名都不一样 , 手动写死太低效 , 最好每次都自动生成资源文件名 。
- 缓存资源是以硬编码字符串判断是否有效 , 这样每次发版本都需要手动修改 , 才能更新缓存 。并且每次都是全量更新 。能否以文件的粒度进行资源缓存呢?
- 请求代理没有区分静态资源和动态接口 。已经缓存的动态接口也会一直返回缓存 , 无法请求新数据 。
3. workbox既然如此 , 我们最好是站在巨人的肩膀上 , 这个巨人就是谷歌 。workbox 是由谷歌浏览器团队发布 , 用来协助创建 PWA 应用的 JavaScript 库 。当然直接用 workbox 还是太复杂了 , 谷歌还很贴心的发布了一个 webpack 插件 , 能够自动生成 Service Worker 和 静态资源列表 - workbox-webpack-plugin 。
只需简单一步就能生成生产环境可用的 Service Worker :
const { GenerateSW } = require('workbox-webpack-plugin')new GenerateSW()推荐阅读
- 如何快速处理mysql连接数占满的问题?
- Go的泛型真的要来了—如何使用以及它们是怎么工作的
- 把猫送人了猫会伤心吗?
- Mysql 单表适合的最大数据量是多少?如何优化其性能?
- 在 Excel 中如何正确输入身份证号?
- 网站推广如何应对劲风算法?劲风算法又是什么?
- PDF如何转Excel?PDF转Excel的操作方法!
- 如何在淘宝网开店步骤 淘宝开网店需要注意什么
- 如何识别洛神花加色素,洛神花茶的功效及其作用
- 淘宝怎样升级最新版本 淘宝如何快速升级
