This commit is contained in:
Adler Neves 2020-01-01 11:41:57 -03:00
parent 69be88542a
commit 7a8822bbba

View File

@ -23,36 +23,37 @@ self.addEventListener('install', event => {
); );
}); });
self.addEventListener('fetch', function(evt) { self.addEventListener('fetch', function (evt) {
console.log('The service worker is serving the asset.'); console.log('The service worker is serving the asset.');
evt.respondWith(fromNetwork(evt.request, 15000).catch(function () { evt.respondWith(fromNetwork(evt.request, 15000).catch(function () {
return fromCache(evt.request); return fromCache(evt.request);
})); }));
}); });
function precache() { function precache() {
return caches.open(CACHE).then(function (cache) { return caches.open(CACHE).then(function (cache) {
return cache.addAll([ return cache.addAll([
'./controlled.html', './controlled.html',
'./asset' './asset'
]); ]);
}); });
} }
function fromNetwork(request, timeout) { function fromNetwork(request, timeout) {
return new Promise(function (fulfill, reject) { return new Promise(function (fulfill, reject) {
var timeoutId = setTimeout(reject, timeout); var timeoutId = setTimeout(reject, timeout);
fetch(request).then(function (response) { fetch(request).then(function (response) {
clearTimeout(timeoutId); clearTimeout(timeoutId);
fulfill(response); fulfill(response);
}, reject); }, reject);
}); });
} }
function fromCache(request) { function fromCache(request) {
return caches.open(CACHE).then(function (cache) { return caches.open(CACHE).then(function (cache) {
return cache.match(request).then(function (matching) { return cache.match(request).then(function (matching) {
return matching || Promise.reject('no-match'); return matching || Promise.reject('no-match');
}); });
}); });
} }