Update service-worker.js
Browse files- service-worker.js +9 -4
service-worker.js
CHANGED
@@ -15,7 +15,6 @@ self.addEventListener('install', (event) => {
|
|
15 |
);
|
16 |
});
|
17 |
|
18 |
-
// メッセージ受信処理
|
19 |
self.addEventListener('message', (event) => {
|
20 |
if (event.data && event.data.type === 'CACHE_FILES') {
|
21 |
cachedFiles = ['/index.html', ...event.data.files]; // index.htmlは常に含める
|
@@ -40,9 +39,14 @@ self.addEventListener('message', (event) => {
|
|
40 |
console.log('すべてのファイルがキャッシュされました');
|
41 |
// 既存のキャッシュから不要なファイルを削除
|
42 |
return cache.keys().then(keys => {
|
43 |
-
|
44 |
-
|
45 |
-
|
|
|
|
|
|
|
|
|
|
|
46 |
cache.delete(keys[index]);
|
47 |
}
|
48 |
});
|
@@ -56,6 +60,7 @@ self.addEventListener('message', (event) => {
|
|
56 |
}
|
57 |
});
|
58 |
|
|
|
59 |
// フェッチイベントの処理
|
60 |
self.addEventListener('fetch', (event) => {
|
61 |
event.respondWith(
|
|
|
15 |
);
|
16 |
});
|
17 |
|
|
|
18 |
self.addEventListener('message', (event) => {
|
19 |
if (event.data && event.data.type === 'CACHE_FILES') {
|
20 |
cachedFiles = ['/index.html', ...event.data.files]; // index.htmlは常に含める
|
|
|
39 |
console.log('すべてのファイルがキャッシュされました');
|
40 |
// 既存のキャッシュから不要なファイルを削除
|
41 |
return cache.keys().then(keys => {
|
42 |
+
// キャッシュ内のURLからoriginを除去し、クエリも除いてパスのみ取得
|
43 |
+
const cachedPaths = keys.map(request => {
|
44 |
+
const urlObj = new URL(request.url);
|
45 |
+
return urlObj.pathname;
|
46 |
+
});
|
47 |
+
|
48 |
+
cachedPaths.forEach((path, index) => {
|
49 |
+
if (!cachedFiles.includes(path)) {
|
50 |
cache.delete(keys[index]);
|
51 |
}
|
52 |
});
|
|
|
60 |
}
|
61 |
});
|
62 |
|
63 |
+
|
64 |
// フェッチイベントの処理
|
65 |
self.addEventListener('fetch', (event) => {
|
66 |
event.respondWith(
|