Service Worker 在没有我要求的情况下缓存资源
Service Worker is caching resources without me asking it to
我正在注册一个服务工作者,它基本上订阅 fetch
事件,returns 我的资源的缓存版本(如果存在)。查看我的网络选项卡,似乎资源正在从 Service Worker 返回,即使我已经缓存了零个文件。
这正常吗?
(显然计划是缓存文件,我只是尝试逐步构建它)
我正在这样注册我的 service worker
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);
})
);
});
不,不代表结果来自缓存。它仅显示响应来自 service worker。现在,如果结果来自 service worker,它可能来自缓存或来自 fetch 事件。在你的情况下,它显然是即将到来的获取事件。
我正在注册一个服务工作者,它基本上订阅 fetch
事件,returns 我的资源的缓存版本(如果存在)。查看我的网络选项卡,似乎资源正在从 Service Worker 返回,即使我已经缓存了零个文件。
这正常吗?
(显然计划是缓存文件,我只是尝试逐步构建它)
我正在这样注册我的 service worker
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);
})
);
});
不,不代表结果来自缓存。它仅显示响应来自 service worker。现在,如果结果来自 service worker,它可能来自缓存或来自 fetch 事件。在你的情况下,它显然是即将到来的获取事件。