workboxSW.precache
默认情况下是cachefirst,是否有一种改变其策略的方法?
workboxSW.precache(myPrecacheItems);
或有没有一种方法可以定义por art式项目上的高速缓存名称,因此可以通过指定路由来覆盖凝固点项目?
parcache基本上是针对您的静态资产(例如CSS/JS等)。即使您不附加哈希,workbox也会在con缩时附加哈希。
因此,如果您更改它们,新的SW将会发挥作用,并提供新的捆绑包。
而刻板的静态值是一种运行时策略(基本上用于动态数据,例如API)。您可以在工作箱中添加运行时处理程序,并期望它们工作。
如果您仍然认为使用运行时策略需要止痛药,请详细说明您的用例。
虽然我不知道是否可以更改工作盒。P>
首先使用定义的缓存名称使用StaleRereRereRevalidate策略来创建您的工作箱路线:
workbox.routing.registerRoute(
/.*.html/,
workbox.strategies.staleWhileRevalidate({
cacheName: 'MY-CACHE',
})
);
在SW安装时,您已定义的路线可预测一些URL。将此代码添加到您的服务工作者:
self.addEventListener('install', (event) => {
const urls = ['https://url1.html','https://url2.html','etc'];
event.waitUntil(caches.open('MY-CACHE').then((cache) => cache.addAll(urls)));
});
其中 my-cache 是您 stalewhilerevalidate 策略中的缓存的名称。