如果 PWA 的缓存名称发生更改,会发生什么情况?



我有一个PWA,在sw.js文件中,缓存名称设置为:

var cacheName = 'my-super-sweet-pwa-app8wfjawa89ja0';

my-super-sweet-pwa部分可以改变,所以有时,在当前状态下,缓存名称可能会改变,包括在PWA已经安装之后。

我有点困惑的缓存实际上是如何工作的。这会对事情产生什么影响?

缓存存储API中的每个Cache实例都有一个特定的名称。当您打开缓存执行读或写操作时,如果您希望访问先前缓存的数据,则需要指定与先前提供的相同的名称。

如果你使用一个从未使用过的全新名称打开缓存,缓存将是空的,并且你将无法match()其中的任何内容。您仍然可以将新的Response写入空缓存。

有一个辅助方法caches.match(),它将在任何缓存中找到给定的Request,无论缓存名称如何。

这就是缓存名的意义。但是退后一步,听起来您可能有更多关于如何有效使用缓存以及它们如何在service worker生命周期中发挥作用的基本问题。我建议在做其他事情之前先通读Service Worker生命周期,因为它将解释这些概念如何与现实世界的场景联系起来。

相关内容

最新更新