用户可以选择使用深色主题,这将为BODY元素添加一个“深色主题”类。
问题在于页面将在存在该类的情况下进行缓存,并且如果用户禁用深色主题,则所缓存的页面仍将以dark-theme类返回。
是否有可能在Workbox将缓存的页面发送回浏览器之前从缓存的页面中删除该类?
我正在检查在DOM准备就绪时是否应用了正确的主题,如果没有,它将删除或添加“黑暗主题”类。用户可以看到该更改,因此我正在寻找另一种解决方案。不幸的是,我无法使用Ajax来获取页面并仅更新内容。
我正在使用Workbox 3.6.1。这是我的service-worker.js上的相关代码
workbox.routing.registerRoute(
new RegExp('/article/'),
async ({
event
}) => {
try {
return await workbox.strategies.networkFirst({
cacheName: 'articles'
}).handle({
event
});
} catch (error) {
return caches.match(OFFLINE_PAGE);
}
}
);