有一个基于vuejs的PWA,它连接到firebase。
该应用程序有几个带有图像的页面。每个页面都有多个图像–要查看页面上的所有图像,您需要向下滚动页面。所有图像都存储在firebase存储中。当你第一次向下滚动页面时,由于应用程序下载了图像,因此不会显示图像。几秒钟后出现图像。
任务是在向下滚动页面时避免下载图像,并在滚动过程中立即显示图像。
此时此刻:
- 所有图像都上载到firebase存储,并带有以下元数据:metadata={cacheControl:'public,max-age=30000000,s-maxage=3000000'}
- 下载图像时,它会显示在应用程序缓存中。向下滚动所有页面时,所有图像都在应用程序缓存中。在这种情况下,在滚动期间立即显示所有图像
- 刷新页面时,所有图像都会从缓存中删除
要解决此任务,我的建议是在打开PWA时将所有图像下载到缓存中。并且希望在接下来的3天内将图像下载到缓存中。
请在您打开PWA时,帮助我找到在接下来的3天内将所有图像下载到缓存中的方法。
或者,如果我的建议不是解决任务的最佳方式,请建议解决任务的更好方式。
谢谢!
如果您能与我们共享一些代码,那就太好了。尤其是您的Service Worker(SW(是如何工作的。
有多点你应该考虑:
每个SW都有一个生命周期,并且它们中的一些被设置为清除Lifescyle事件"上的高速缓存;激活";。检查一下你的是不是在这么做。
您应该做的一件事是捕获对图像的所有GET请求,并在图像存在的情况下从缓存返回图像,如果没有,则从服务器返回图像(这应该在软件中完成(
您可以在安装时将themm存储在软件中。只要确保不要一次保存太多,因为那时安装可能会很容易失败。
当您提前以异步方式向下滚动时,请尝试将它们以较小的批量保存到缓存中。您也可以从前端代码将数据保存到缓存中。