通常,服务工作者应预缓存哪些文件?

本·凯里

我很欣赏这个问题,可能只是基于“观点”的问题,但是,我认为,笼统的答案可能会对将来有兴趣进一步了解PWA和服务人员的其他人有所帮助。

背景

我已经在网上搜索了,很惊讶地发现没有最佳做法的清晰描述,因为它涉及选择服务工作者为PWA预先缓存的文件。

有各种文章/文档概述了预缓存的功能以及其工作方式(请参阅此处以获取更多信息),但是它们都没有提供“常见做法”的示例。

在标准的渐进式Web应用程序中,通常会预缓存哪些文件?

我目前在做什么...

为了确保我的应用程序尽可能在离线状态下运行,我预缓存了以下所有文件:

  • index.html模板(我的应用程序是一个Vue的SPA)
  • 所有JS文件(包括来自动态导入的JS)
  • 所有CSS文件(只有一个)
  • 网络清单
  • 应用程序使用的任何自定义字体
  • 任何必需的语言文件(这是动态的,即只会预缓存当前访问者的语言)
  • 所有应用程序图标(请参阅下面的列表)
  • 所有初始屏幕(请参阅下面的列表)

就我而言,这大约为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
  • 野生动物园固定tab.svg

开机画面分类

  • splash-1125x2436.png
  • splash-1242x2148.png
  • splash-1536x2048.png
  • splash-1668x2224.png
  • splash-2048x2732.png
  • splash-640x1136.png
  • splash-750x1294.png
弗朗切斯科

通常,您应该在PWA中预取构成应用程序核心shell的所有那些静态资产
因此,即使没有Internet连接,您也希望用户立即可用的最小资产集。如果这些资源的预取失败,那么将不会安装服务工作者,因为它们对PWA本身至关重要。

方案可能因情况而异。
例如,在一个简单的情况下,您只能缓存一个脱机页面,一些公司徽标图像和相关的javascript文件。在其他情况下(例如https://www.trivago.ch/),您可以提供完整的脱机游戏,以便在脱机时与用户进行交互。

如果有人想进一步研究该主题,我写了一系列有关Progressive Web Apps的文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

服务工作者将文件从API调用添加到预缓存

服务工作者缓存与 VuexPersistence

延迟加载或预加载Angular模块并使用服务工作者来缓存结果?

服务工作者和软件预缓存的“新版本可用”

如何使用服务工作者预缓存名称在每次部署时都会更改的资产?

服务工作者从磁盘缓存中缓存资源

服务工作者在反应中缓存的路由

WebView:以编程方式清除服务工作者缓存

PWA服务工作者缓存/更新预期行为

如何由服务工作者更新缓存的资源

具有SSL证书缓存的服务工作者

注销时如何清除服务工作者缓存?

如何防止服务工作者删除缓存,PWA

服务工作者缓存破坏谷歌地图 api

服务工作者不会从缓存中返回文件

服务工作者缓存文件但不离线加载

持久服务工作者和缓存 HTML 和 PNG 文件

未找到reactjs服务工作者.license文件

在服务工作者中添加图像和CSS文件以及HTML文件以进行离线缓存

如何卸载服务工作者?

notificationclick事件服务工作者

服务工作者中的XMLHttpRequest

使用CSRF令牌缓存请求时,如何减少服务工作者缓存的大小

服务工作者和客户端请求“缓存控制”:“无缓存”

在服务工作者中服务之前,可以编辑缓存的index.html吗?

Vue CLI 4 - 清单中的 PWA 插件预缓存无法获取 index.html 并且未注册服务工作者

角度缓存 - 我们应该使用服务工作者吗?

根据年龄删除服务工作者缓存中的条目

是否可以修改服务工作者缓存响应标头?