我正在注册一个本质上订阅fetch
事件的服务工作者,并返回我的资源的缓存版本(如果存在)。查看我的网络选项卡,看起来好像资源是从服务工作者返回的,即使我已经缓存了几乎没有文件。
这是正常的吗?
(显然计划是缓存文件,我只是试图逐步构建)
我正在注册我的服务工作者
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);
})
);
});
答案 0 :(得分:2)
不,它不代表结果来自缓存。它仅显示响应来自服务工作者。现在,如果结果来自服务工作者,则可以来自缓存或来自fetch事件。在你的情况下,它显然是来取回事件。