在我的渐进式Web应用程序中,我应该在服务工作者中使用Cache API来处理我的静态资源吗?或者我应该仅仅依靠浏览器的本地缓存控件来处理这些资源?有什么关系呢?
发布于 2016-02-04 09:00:46
服务工作者缓存API的一个主要优势是,它为您提供了比内置浏览器缓存更详细的控制。例如,当用户首次运行您的web应用程序时,您的服务工作人员可以缓存多个请求,包括他们尚未访问的资产。这将加快后续请求的速度。您还可以实现自己的缓存控制逻辑,确保重要的资产保留在缓存中,同时删除较少使用的数据。
发布于 2017-12-26 06:31:10
主要的区别是控制。浏览器缓存被从Cache-Control头中驱逐,这是好的,直到它不好。有各种各样的策略来管理如何缓存网络可寻址资源;私有的、公共的;生存时间等。
使用服务工作者缓存,您可以通过编程方式控制这些资产的持久化方式。但这意味着重担落在了你身上。
我认为浏览器缓存是不可靠的。浏览器将根据设备存储可用性自动清除资产。例如,iPhones用于忽略超过25kb的任何资源的缓存。今天,我认为他们真的很有侵略性。
我知道Facebook团队几年前做过一项研究,发现他们期望浏览器根据头文件缓存的文件中只有25%被缓存了。这意味着有额外的网络流量和服务器活动。
这就是为什么服务工作者缓存是更好的选择。不要删除你的缓存头,只是不要依赖它们。
https://stackoverflow.com/questions/35190699
复制相似问题