From c79aa36c63c4a3bdae66464c32db8fd62424d913 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 27 Nov 2017 22:00:48 +0900 Subject: [PATCH] Cache --- src/web/app/sw.js | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/web/app/sw.js b/src/web/app/sw.js index a7c84d022..1b3220d23 100644 --- a/src/web/app/sw.js +++ b/src/web/app/sw.js @@ -4,9 +4,39 @@ import composeNotification from './common/scripts/compose-notification'; +// キャッシュするリソース +const cachee = [ + '/' +]; + // インストールされたとき -self.addEventListener('install', () => { +self.addEventListener('install', ev => { console.info('installed'); + + // Cache + ev.waitUntil(caches.open(_VERSION_).then(cache => cache.addAll(cachee))); +}); + +// アクティベートされたとき +self.addEventListener('activate', ev => { + // Clean up old caches + ev.waitUntil( + caches.keys().then(keys => Promise.all( + keys + .filter(key => key != _VERSION_) + .map(key => caches.delete(key)) + )) + ); +}); + +// リクエストが発生したとき +self.addEventListener('fetch', ev => { + ev.respondWith( + // キャッシュがあるか確認してあればそれを返す + caches.match(ev.request).then(response => + response || fetch(ev.request) + ) + ); }); // プッシュ通知を受け取ったとき