diff options
Diffstat (limited to 'public/service-worker.js')
-rw-r--r-- | public/service-worker.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/public/service-worker.js b/public/service-worker.js new file mode 100644 index 0000000..2b5c556 --- /dev/null +++ b/public/service-worker.js @@ -0,0 +1,47 @@ +const CACHE_NAME = 'static-cache-v10'; +const FILES_TO_CACHE = [ + '/offline.html', + '/static/v10/css/materialize.min.css', + '/static/v10/css/material-icons.css', + '/static/v10/css/local.css', + '/static/v10/js/jquery-2.2.4.min.js', + '/static/v10/js/materialize.min.js', + '/static/v10/js/travelynx-actions.min.js', +]; + +self.addEventListener('install', (evt) => { + evt.waitUntil( + caches.open(CACHE_NAME).then((cache) => { + return cache.addAll(FILES_TO_CACHE); + }) + ); + self.skipWaiting(); +}); + +self.addEventListener('activate', (evt) => { + evt.waitUntil( + caches.keys().then((keyList) => { + return Promise.all(keyList.map((key) => { + if (key !== CACHE_NAME) { + return caches.delete(key); + } + })); + }) + ); + self.clients.claim(); +}); + +self.addEventListener('fetch', (evt) => { + if (evt.request.mode !== 'navigate') { + return; + } + evt.respondWith( + fetch(evt.request) + .catch(() => { + return caches.open(CACHE_NAME) + .then((cache) => { + return cache.match('offline.html'); + }); + }) + ); +}); |