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 |
}
|