我知道这个问题可能有点“基于观点”,但是我认为一个概括性的答案可以帮助那些未来对PWA和服务工作者感兴趣的人。
背景
我在网上搜索了一下,惊讶地发现没有明确说明在选择要由服务工作者预缓存的文件时最佳实践是什么。
有各种文章/文档概述了预缓存的作用和工作原理(请参见此处获取更多信息),但它们中没有一个给出“常规实践”的示例。
问题
在标准渐进式Web应用程序中,人们通常会预缓存哪些文件?
我目前正在做的事情...
为了确保我的应用程序在离线时尽可能地正常工作,我正在预缓存所有以下文件:
index.html
模板(我的应用程序是Vue SPA)- 所有JS文件(包括动态导入的JS)
- 所有CSS文件(只有一个)
- Web清单
- 应用程序使用的任何自定义字体
- 任何所需的语言文件(这是动态的,即只会预缓存当前访问者的语言)
- 所有应用程序图标(请参见下面的列表)
- 所有启动画面(请参见下面的列表)
在我的情况下,这大约是2MB(一旦应用程序完成可能会增加)
应用程序图标的详细信息
- android-chrome-192x192.png
- android-chrome-512x512.png
- apple-touch-icon-120x120-precomposed.png
- apple-touch-icon-120x120.png
- apple-touch-icon-180x180-precomposed.png
- apple-touch-icon-180x180.png
- apple-touch-icon-72x72-precomposed.png
- apple-touch-icon-72x72.png
- apple-touch-icon-precomposed.png
- apple-touch-icon.png
- icon_128x128.png
- icon_144x144.png
- icon_152x152.png
- icon_192x192.png
- icon_384x384.png
- icon_512x512.png
- icon_72x72.png
- icon_96x96.png
- favicon-16x16.png
- favicon-194x194.png
- favicon-32x32.png
- favicon.ico
- mstile-144x144.png
- safari-pinned-tab.svg
启动画面的详细信息
- splash-1125x2436.png
- splash-1242x2148.png
- splash-1536x2048.png
- splash-1668x2224.png
- splash-2048x2732.png
- splash-640x1136.png
- splash-750x1294.png