工作箱3:是否可以在返回响应之前更改响应的HTML?

时间:2019-02-25 01:25:05

标签: service-worker workbox

用户可以选择使用深色主题,这将为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);
            }
        }
    );

0 个答案:

没有答案