在Workbox中使用缓存优先策略的主要目的是什么?

时间:2018-09-06 14:40:55

标签: service-worker workbox

阅读Workbox strategies documentation,我发现我无法想象在Workbox中使用“缓存优先”策略的情况。

有“过时重新验证”策略,该策略先使用缓存,然后在后台通过网络更新缓存文件。如果更改目标文件,则很有用,因为下次访问时,该应用程序将使用上次缓存的最新文件。我想,如果您没有任何变化,那就没有缺点。

在Workbox中使用“缓存优先”策略的主要目的是什么?

谢谢。

1 个答案:

答案 0 :(得分:2)

(此答案并非特定于Workbox,尽管Workbox使使用这些策略更容易,而不是“手动滚动它们”。)

当您确定给定URL的内容不会更改时,建议您使用缓存优先策略。如果您对此有信心,那么在过时的“重新验证”策略中提出的额外网络请求只是一种浪费-为什么要花这么多开销呢?

您应该最有把握地确定URL内容不会更改的情况是,如果URL包含一些显式的版本控制信息(例如https://example.com/librbaries/v1.0.0/index.js)或基础内容的哈希(例如{ {1}}。

当资源可能会更新时,有时使用缓存优先策略是有意义的,但是您的用户不太可能“在意”更新,并且获取更新的成本很高。例如,您可能会争辩说,对文章正文中使用的图像使用缓存优先策略是一个合理的权衡,即使图像URL未被明确版本化也是如此。看到过时的图像可能不是最糟糕的事情,并且您不会在重新验证步骤期间强迫用户下载可能较大的图像。