mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 17:26:42 +00:00
Cache index in service worker
This commit is contained in:
parent
4219380146
commit
254dd6243b
@ -1,3 +1,8 @@
|
||||
const CACHE = '0.10';
|
||||
const INDEX_CACHE_URL = '/';
|
||||
const INDEX_ROUTES = ['/', '/logbook', '/history', '/map', '/devService', '/devState',
|
||||
'/devEvent', '/devInfo', '/states'];
|
||||
|
||||
if (__DEV__) {
|
||||
console.log('Service Worker initialized.');
|
||||
}
|
||||
@ -6,6 +11,10 @@ self.addEventListener('install', event => {
|
||||
if (__DEV__) {
|
||||
console.log('Service Worker installed.');
|
||||
}
|
||||
|
||||
event.waitUntil(
|
||||
caches.open(CACHE).then(cache => cache.add(INDEX_CACHE_URL))
|
||||
);
|
||||
});
|
||||
|
||||
self.addEventListener('activate', event => {
|
||||
@ -16,8 +25,33 @@ self.addEventListener('activate', event => {
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('onmessage', message => {
|
||||
self.addEventListener('message', event => {
|
||||
if (__DEV__) {
|
||||
console.log('Message received', message);
|
||||
console.log('Message received', event.data);
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('fetch', event => {
|
||||
const path = event.request.url.substr(event.request.url.indexOf('/', 7));
|
||||
|
||||
if (event.request.mode !== 'same-origin' || !INDEX_ROUTES.includes(path)) {
|
||||
return fetch(event.request);
|
||||
}
|
||||
|
||||
event.respondWith(
|
||||
caches.open(CACHE).then(cache => {
|
||||
return cache.match(INDEX_CACHE_URL).then(cachedResponse => {
|
||||
const networkFetch = fetch(event.request).then(response => {
|
||||
cache.put(INDEX_CACHE_URL, response.clone());
|
||||
return response;
|
||||
});
|
||||
|
||||
if (__DEV__ && cachedResponse) {
|
||||
console.log('Serving cached response for', path);
|
||||
}
|
||||
|
||||
return cachedResponse || networkFetch;
|
||||
});
|
||||
})
|
||||
);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user