Update service-worker.js
Browse files- service-worker.js +15 -17
service-worker.js
CHANGED
|
@@ -1,25 +1,23 @@
|
|
| 1 |
const CACHE_NAME = 'my-cache-v1';
|
| 2 |
let cachedFiles = [
|
| 3 |
-
'/'
|
| 4 |
-
'/index.html',
|
| 5 |
-
'/v.mp4',
|
| 6 |
-
'/p.mp3',
|
| 7 |
-
'/s.mp3',
|
| 8 |
-
'/a.mp3',
|
| 9 |
-
'/t.mp3',
|
| 10 |
-
'/k.mp3',
|
| 11 |
-
'/t/v.mp4',
|
| 12 |
-
'/t/p.mp3',
|
| 13 |
-
'/t/s.mp3',
|
| 14 |
-
'/t/a.mp3',
|
| 15 |
-
'/t/t.mp3',
|
| 16 |
-
'/t/k.mp3'
|
| 17 |
];
|
| 18 |
|
| 19 |
// メッセージ受信処理
|
| 20 |
self.addEventListener('message', (event) => {
|
| 21 |
if (event.data && event.data.type === 'CACHE_FILES') {
|
| 22 |
-
cachedFiles = event.data.files;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
// 新しいキャッシュリストでキャッシュを更新
|
| 25 |
event.waitUntil(
|
|
@@ -50,7 +48,7 @@ self.addEventListener('activate', event => {
|
|
| 50 |
caches.keys().then(keys =>
|
| 51 |
Promise.all(
|
| 52 |
keys.map(key => {
|
| 53 |
-
if (key !== CACHE_NAME) {
|
| 54 |
return caches.delete(key);
|
| 55 |
}
|
| 56 |
})
|
|
@@ -62,10 +60,10 @@ self.addEventListener('activate', event => {
|
|
| 62 |
|
| 63 |
// フェッチ:ネット優先、失敗時にキャッシュ
|
| 64 |
self.addEventListener('fetch', event => {
|
| 65 |
-
// キャッシュリストにないファイルはキャッシュしない
|
| 66 |
const url = new URL(event.request.url);
|
| 67 |
const path = url.pathname;
|
| 68 |
|
|
|
|
| 69 |
if (!cachedFiles.includes(path)) {
|
| 70 |
return fetch(event.request);
|
| 71 |
}
|
|
|
|
| 1 |
const CACHE_NAME = 'my-cache-v1';
|
| 2 |
let cachedFiles = [
|
| 3 |
+
'/index.html' // index.htmlは常にキャッシュ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
];
|
| 5 |
|
| 6 |
// メッセージ受信処理
|
| 7 |
self.addEventListener('message', (event) => {
|
| 8 |
if (event.data && event.data.type === 'CACHE_FILES') {
|
| 9 |
+
cachedFiles = ['/index.html', ...event.data.files]; // index.htmlは常に含める
|
| 10 |
+
|
| 11 |
+
// チェックボックスの状態を保存
|
| 12 |
+
if (event.data.checkboxStates) {
|
| 13 |
+
event.waitUntil(
|
| 14 |
+
caches.open('settings-cache').then(cache => {
|
| 15 |
+
return cache.put(
|
| 16 |
+
new Request('checkbox-states'),
|
| 17 |
+
new Response(JSON.stringify(event.data.checkboxStates))
|
| 18 |
+
})
|
| 19 |
+
);
|
| 20 |
+
}
|
| 21 |
|
| 22 |
// 新しいキャッシュリストでキャッシュを更新
|
| 23 |
event.waitUntil(
|
|
|
|
| 48 |
caches.keys().then(keys =>
|
| 49 |
Promise.all(
|
| 50 |
keys.map(key => {
|
| 51 |
+
if (key !== CACHE_NAME && key !== 'settings-cache') {
|
| 52 |
return caches.delete(key);
|
| 53 |
}
|
| 54 |
})
|
|
|
|
| 60 |
|
| 61 |
// フェッチ:ネット優先、失敗時にキャッシュ
|
| 62 |
self.addEventListener('fetch', event => {
|
|
|
|
| 63 |
const url = new URL(event.request.url);
|
| 64 |
const path = url.pathname;
|
| 65 |
|
| 66 |
+
// キャッシュリストにないファイルはキャッシュしない
|
| 67 |
if (!cachedFiles.includes(path)) {
|
| 68 |
return fetch(event.request);
|
| 69 |
}
|