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

Service worker 什么';在Workbox中使用缓存优先策略的主要目的是什么?,service-worker,workbox,Service Worker,Workbox,阅读Workbox,我发现我无法想象在Workbox中使用“缓存优先”策略的情况 有一种“过时而重新验证”的策略,它首先使用缓存,然后在后台通过网络更新缓存文件。如果您更改目标文件,这将非常有用,因为下次访问时,应用程序将使用上次缓存的最新文件。如果你没有任何改变,我认为没有任何不利之处 在Workbox中使用“缓存优先”策略的主要目的是什么 提前感谢。(这个答案并不特定于Workbox,尽管Workbox使使用这些策略更容易,而不是“手动滚动”) 如果您确定给定URL上的内容不会更改,我建议使

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

有一种“过时而重新验证”的策略,它首先使用缓存,然后在后台通过网络更新缓存文件。如果您更改目标文件,这将非常有用,因为下次访问时,应用程序将使用上次缓存的最新文件。如果你没有任何改变,我认为没有任何不利之处

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

提前感谢。

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

如果您确定给定URL上的内容不会更改,我建议使用缓存优先策略。如果您对此很有信心,那么在stale while revalidate策略中发出的额外网络请求只是一种浪费,为什么还要为此而烦恼呢

如果URL包含一些明确的版本控制信息(例如,
https://example.com/librbaries/v1.0.0/index.js
)或基础内容的散列(例如
https://example.com/libraries/index.abcd1234.js

有时,当资源可能更新时,使用缓存优先策略是有意义的,但是您的用户不太可能“关心”更新,并且检索更新的成本很高。例如,您可以认为,对文章正文中使用的图像使用缓存优先策略是一种合理的折衷,即使图像URL没有明确的版本控制。看到过期的图像可能不是最糟糕的事情,您也不会在重新验证步骤中强迫用户下载可能较大的图像。

(这个答案并不特定于Workbox,但Workbox使使用这些策略更容易,而不是“手动滚动”)

如果您确定给定URL上的内容不会更改,我建议使用缓存优先策略。如果您对此很有信心,那么在stale while revalidate策略中发出的额外网络请求只是一种浪费,为什么还要为此而烦恼呢

如果URL包含一些明确的版本控制信息(例如,
https://example.com/librbaries/v1.0.0/index.js
)或基础内容的散列(例如
https://example.com/libraries/index.abcd1234.js

有时,当资源可能更新时,使用缓存优先策略是有意义的,但是您的用户不太可能“关心”更新,并且检索更新的成本很高。例如,您可以认为,对文章正文中使用的图像使用缓存优先策略是一种合理的折衷,即使图像URL没有明确的版本控制。看到过期的图像可能不是最糟糕的事情,在重新验证步骤中,您不会强迫用户下载可能较大的图像