小编mau*_*ets的帖子

如何在服务工作者缓存之前修改响应正文?

我认为这会相当简单,但我很难成功发送响应,然后修改存储在服务工作线程内的缓存中的克隆响应。

最终,我想将缓存的数据附加到获取的时间和日期。我正在使用我的服务工作人员首先从网络获取此数据,如果数据不可用,则回退到缓存。

这是我的服务人员的代码

        event.respondWith(
            fetch(event.request)
            .then(function(e) {

                console.log('response', e)
                var responseToCache = e.clone();

                responseToCache.json().then(function(data) {
                    var today = new Date();
                    var date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();
                    var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
                    data.cached = { date: date, time: time }
                    return data
                })

                // var init = {
                //     status: response.status,
                //     statusText: response.statusText,
                //     headers: { 'X-Foo': 'My Custom Header' }
                // };

                // response.headers.forEach(function(v, …
Run Code Online (Sandbox Code Playgroud)

javascript response httpresponse service-worker service-worker-events

7
推荐指数
0
解决办法
784
查看次数