我正在为博物馆参观者开发一个应用程序,该应用程序显示有关某些展览对象的多媒体信息。一个例子可能是达芬奇博览会的蒙娜丽莎的信息页面。
该应用程序实现为 PWA 以启用离线使用。目前我正在使用工作箱来预缓存应用程序外壳。对 REST 资源的 GET 请求也会被缓存。这允许用户在离线后重新加载蒙娜丽莎页面,但应用程序在之前未加载的页面上失败。
一个解决方案是将所有内容与应用程序外壳一起预先缓存。但是,用户不感兴趣的展览也会被下载。相反,用户应该能够下载他选择的“展示包”。
现在,我想知道如何实现我的“下载展览”按钮:
- 利用工作箱的路由请求 [1] 在后台缓存和获取所有资源
- 使用 Cache API 手动缓存 GET 请求
- 引入一个镜像在线数据库的本地数据库。单击“下载”时,用相应的 GET 响应填充它
你会推荐工作箱、缓存 API 还是数据库方法?或者有没有我忽略的标准解决方案?
[1] https://developers.google.com/web/tools/workbox/guides/route-requests