次のような単一のキャッシュとサービスワーカーを初期化するためのそこに多くの例があります。サービスワーカー
let cacheName = 'myCacheName-v1';
let urlsToCache = ['url1', 'url2', url3'];
self.addEventListener('install', function (event) {
event.waitUntil(
caches.open(cacheName).then(function (cache) {
return cache.addAll(urlsToCache);
}).then(function() {
return this.skipWaiting();
})
);
});
私は私のサービスワーカーに複数のキャッシュを初期化したいです。その動機付けは、変更の傾向(例えば、静的なアプリデータ対CSS、JavaScriptなど)によって資産をグループ化することです。複数のキャッシュでは、(変更されたキャッシュ名を使用して)キャッシュ内のファイルとして個々のキャッシュを更新することができます。理想的には、私はセットアップに次のような構造をしたい:このアプローチは動作しているようです
self.addEventListener('install', function (event) {
appCaches.forEach(function (appCache) {
event.waitUntil(
caches.open(appCache.name).then(function (cache) {
return cache.addAll(appCache.urls);
}));
});
self.skipWaiting();
});
:
let appCaches = [{
name: 'core-00001',
urls: [
'./',
'./index.html', etc...
]
},
{
name: 'data-00001',
urls: [
'./data1.json',
'./data2.json', etc...
]
},
etc...
];
私の最高の試みは、これまでのようなものです。しかし、私はまだ労働者と約束をするための初心者です。何かは、このアプローチには私が認識するにはあまりにも慣れていない落とし穴があることがわかります。これを実装するより良い方法はありますか?