我正在开发带有CLI Schematics(@ angular / pwa)的Angular 7购物清单应用程序PWA。
该应用程序将提供按手风琴内商品类型分组的购物图标(每个类别约10至20,每个类别2KB至6KB)。 PWA应用程序只能在手机上使用(仅出于上下文考虑,因为这没有区别)。
由于图标不会更改,因此我不确定在以下方法之间是否使用
:(我将Firebase用作数据库,因此我正在考虑使用Firebase Storage)
第一种方法的好处是所有图标都可以立即使用,但是可以使应用程序的整体尺寸更大。另一方面,第二种方法将采用更多的惰性加载方法,并且仅下载请求的资产,然后将其本地缓存。缺点是下载图标的加载时间更长(至少是在第一次或缓存过期时)。
目前,我使用PWA延迟加载策略来解决第二个问题,但是我很想知道在这种情况下是否有更好的方法。
答案 0 :(得分:0)
还有第三种方法,因为您只有移动客户端,这意味着您几乎可以肯定有服务人员。然后,您可以在服务工作者存储中本地缓存项目。这意味着,图标不会在用户第一次访问该网站时加载(或者您可以添加其中的一小部分子集),但是在您第一次请求图标时,它将被缓存,以及其他所有项将从现在的frmo类别中受益。
如果不是那样,我最好将它们存储为常规资产,而不是firedb项,然后设置适当的缓存控件。实际上,无论是否使用Service Worker,都应该正确设置缓存控件。
所以我的TL:DR;答案是:
(*)=>必填
这是一个已解决的问题,可能不值得将头撞在墙上,至少不会持续很长时间。使用推荐的方法,无论是否使用服务工作者,都不要在数据库中放置静态资产。
此外,还有一些要测试的东西,但是您可以执行以下操作以: -将它们变成SVG(压缩效果更好) -将其作为精灵发送