我正在使用PWA开发应用程序,但是当我在数据库中更新主URL中的某些内容时,似乎没有发生任何变化,我必须清除服务工作者中的缓存,而在移动设备中,最终用户可能不必先清除缓存即可使用该应用程序。 ,我的问题有解决方案吗?
[我做了几种选择,例如屏蔽URL以免缓存服务工作者,但我知道效率不高
这是我的服务工作者文件
importScripts('https://storage.googleapis.com/workboxcdn/releases/4.3.1/workbox-sw.js');
if (workbox) {
workbox.setConfig({
debug: true
});
// top-level routes we want to precache
workbox.precaching.precacheAndRoute(['/123', '/123']);
// injected assets by Workbox CLI
workbox.precaching.precacheAndRoute([
//my precache data is here
]);
// match routes for homepage, blog and any sub-pages of blog
workbox.routing.registerRoute(
/^\/(?:()?(\/.*)?)$/,
new workbox.strategies.NetworkFirst({
cacheName: 'static-resources',
})
);
// js/css files
workbox.routing.registerRoute(
/\.(?:js|css)$/,
new workbox.strategies.NetworkFirst({
cacheName: 'static-resources',
})
);
// images
workbox.routing.registerRoute(
// Cache image files.
/\.(?:png|jpg|jpeg|svg|gif)$/,
// Use the cache if it's available.
new workbox.strategies.NetworkFirst({
// Use a custom cache name.
cacheName: 'image-cache',
plugins: [
new workbox.expiration.Plugin({
// Cache upto 50 images.
maxEntries: 50,
// Cache for a maximum of a week.
maxAgeSeconds: 7 * 24 * 60 * 60,
})
],
})
);
}
当您将更新发布到服务器时,我的服务工作者没有看到任何使缓存数据/响应无效的逻辑。您将不得不将该逻辑添加到您的提取处理程序中。
FYI工作箱默认情况下不包括该文件夹,您必须为此创建自己的逻辑。 Workbox仅具有一些常用的缓存策略。它不能为每个站点的自定义缓存方案提供模块。这就是该工具可扩展的原因。