1.1.4
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 9.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,109 @@
|
||||
// Set a name for the current cache
|
||||
var cacheName = 'v1';
|
||||
|
||||
// Default files to always cache
|
||||
var cacheFiles = [
|
||||
'/',
|
||||
'/_nicegui/1.3.13/static/nicegui.css',
|
||||
'/_nicegui/1.3.13/static/fonts.css',
|
||||
'/_nicegui/1.3.13/static/quasar.prod.css',
|
||||
'/_nicegui/1.3.13/static/es-module-shims.js',
|
||||
'/_nicegui/1.3.13/static/socket.io.min.js',
|
||||
'/_nicegui/1.3.13/static/tailwindcss.min.js',
|
||||
'/_nicegui/1.3.13/static/vue.global.prod.js',
|
||||
'/_nicegui/1.3.13/static/quasar.umd.prod.js',
|
||||
'/_nicegui/1.3.13/static/lang/en-US.umd.prod.js'
|
||||
]
|
||||
|
||||
|
||||
self.addEventListener('install', function(e) {
|
||||
console.log('[ServiceWorker] Installed');
|
||||
|
||||
// e.waitUntil Delays the event until the Promise is resolved
|
||||
e.waitUntil(
|
||||
|
||||
// Open the cache
|
||||
caches.open(cacheName).then(function(cache) {
|
||||
|
||||
// Add all the default files to the cache
|
||||
console.log('[ServiceWorker] Caching cacheFiles');
|
||||
return cache.addAll(cacheFiles);
|
||||
})
|
||||
); // end e.waitUntil
|
||||
});
|
||||
|
||||
|
||||
self.addEventListener('activate', function(e) {
|
||||
console.log('[ServiceWorker] Activated');
|
||||
|
||||
e.waitUntil(
|
||||
|
||||
// Get all the cache keys (cacheName)
|
||||
caches.keys().then(function(cacheNames) {
|
||||
return Promise.all(cacheNames.map(function(thisCacheName) {
|
||||
|
||||
// If a cached item is saved under a previous cacheName
|
||||
if (thisCacheName !== cacheName) {
|
||||
|
||||
// Delete that cached file
|
||||
console.log('[ServiceWorker] Removing Cached Files from Cache - ', thisCacheName);
|
||||
return caches.delete(thisCacheName);
|
||||
}
|
||||
}));
|
||||
})
|
||||
); // end e.waitUntil
|
||||
|
||||
});
|
||||
|
||||
|
||||
self.addEventListener('fetch', function(e) {
|
||||
console.log('[ServiceWorker] Fetch', e.request.url);
|
||||
|
||||
// e.respondWith Responds to the fetch event
|
||||
e.respondWith(
|
||||
|
||||
// Check in cache for the request being made
|
||||
caches.match(e.request)
|
||||
|
||||
.then(function(response) {
|
||||
|
||||
// If the request is in the cache
|
||||
if ( response ) {
|
||||
console.log("[ServiceWorker] Found in Cache", e.request.url, response);
|
||||
// Return the cached version
|
||||
return response;
|
||||
}
|
||||
|
||||
// If the request is NOT in the cache, fetch and cache
|
||||
|
||||
var requestClone = e.request.clone();
|
||||
|
||||
fetch(requestClone)
|
||||
.then(function(response) {
|
||||
|
||||
if ( !response ) {
|
||||
console.log("[ServiceWorker] No response from fetch ")
|
||||
return response;
|
||||
}
|
||||
|
||||
var responseClone = response.clone();
|
||||
|
||||
// Open the cache
|
||||
caches.open(cacheName).then(function(cache) {
|
||||
|
||||
// Put the fetched response in the cache
|
||||
cache.put(e.request, responseClone);
|
||||
console.log('[ServiceWorker] New Data Cached', e.request.url);
|
||||
|
||||
// Return the response
|
||||
return response;
|
||||
|
||||
}); // end caches.open
|
||||
|
||||
})
|
||||
.catch(function(err) {
|
||||
console.log('[ServiceWorker] Error Fetching & Caching New Data', err);
|
||||
});
|
||||
}) // end caches.match(e.request)
|
||||
); // end e.respondWith
|
||||
});
|
||||
Reference in New Issue
Block a user