【发布时间】:2018-08-16 00:45:31
【问题描述】:
我有一些资源想要缓存并以最快的速度提供给我的应用程序。
当我使用 appcache 时,我得到了很好的服务速度,但我被 appcache 卡住了。
所以我用服务人员替换了它。
然后我尝试了最简单的策略,只需在安装时缓存静态资产,并在获取时从缓存中提供它们。
它起作用了,当我检查 chrome 的网络面板时,我很高兴看到我的 service worker 正在运行,但是 - 加载时间很糟糕,每个资源加载时间加倍。
所以我开始考虑其他策略,here 你可以找到很多,缓存和网络竞赛听起来很有趣,但我被数据使用吓倒了。
所以我尝试了一些不同的方法,我试图积极地将资源缓存在服务人员的内存中。每当我的服务工作者启动并运行时,它都会从缓存中汇集相关资源,并将响应对象保存在内存中以备后用。当它获得匹配的 fetch 时,它只会以内存中响应的克隆进行响应。
这个策略被证明是最快的,这是我做的一个比较:
所以我的问题很模糊,因为我对服务人员的理解仍然很模糊......
这一切都有意义吗,我可以将静态资源缓存保留在内存中吗? 臃肿的内存使用情况如何,这有什么负面影响吗?例如 - 浏览器可能会更频繁地关闭具有高内存消耗的服务工作者。
【问题讨论】:
标签: service-worker html5-appcache