Service Worker在没有我要求的情况下缓存资源

时间:2016-12-08 23:07:03

标签: javascript service-worker

我正在注册一个本质上订阅fetch事件的服务工作者,并返回我的资源的缓存版本(如果存在)。查看我的网络选项卡,看起来好像资源是从服务工作者返回的,即使我已经缓存了几乎没有文件。

enter image description here

这是正常的吗?

(显然计划是缓存文件,我只是试图逐步构建)

我正在注册我的服务工作者

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('swRoot.js').then(() => {
        console.log('registered');
    }, err => console.log(err));
}

整个swRoot.js就是这个

self.addEventListener('install', function(event) {
    console.log('hello');
});

console.log('ADDING FETCH at root level');
self.addEventListener('fetch', function(event) {
    console.log('fetching ->', event.request);
    event.respondWith(
        caches.match(event.request)
            .then(function(response) {
                // Cache hit - return response
                if (response) {
                    return response;
                }
                return fetch(event.request);
            })
    );
});

1 个答案:

答案 0 :(得分:2)

不,它不代表结果来自缓存。它仅显示响应来自服务工作者。现在,如果结果来自服务工作者,则可以来自缓存或来自fetch事件。在你的情况下,它显然是来取回事件。