我有以下代码,它应该缓存3个文件,但是我重新加载页面,我进入开发工具和网络,它说我的所有文件都来自服务工作者。我的代码正确,只有3个文件被捕获或所有文件都被捕获了?
let cache_name = 'v1'
let cache_files = [
'./style/general.css',
'./style/authenticate.css',
'./javascript/app.js'
];
self.addEventListener('install',function(e){
console.log('[ServiceWorker] installed')
e.waitUntil(
caches.open(cache_name).then(function(cache){
console.log('[ServiceWorker] Caching ',cache_files)
return cache.addAll(cache_files)
})
)
});
self.addEventListener('activate',function(e){
console.log('[ServiceWorker] activated')
e.waitUntil(
caches.keys().then(function(cache_names){
return Promise.all(cache_names.map(function(this_cache_name){
if(this_cache_name !== cache_name){
console.log('[ServiceWorker] removing cached files from',this_cache_name)
return caches.delete(this_cache_name)
}
}))
})
)
})
self.addEventListener('fetch',function(e){
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
})
如何判断缓存哪些文件以及哪些文件不缓存?
答案 0 :(得分:0)
我不完全理解你的问题。
您的代码执行以下操作:
您可以通过左侧的“应用程序”标签的“缓存存储”窗格检查Chrome开发工具中的缓存文件。检查一下并滚动到底部:https://developers.google.com/web/tools/chrome-devtools/manage-data/local-storage