diff --git a/layouts/partials/head.html b/layouts/partials/head.html index d90bf21..a1ef18a 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -66,7 +66,4 @@ {{- partial "external/twitter_cards.html" . -}} {{ partial "citation.html" . }} - - {{- $script := resources.Get "js/script.js" -}} - diff --git a/static/serviceworker.js b/static/serviceworker.js index 0a934e2..36ba221 100644 --- a/static/serviceworker.js +++ b/static/serviceworker.js @@ -12,81 +12,80 @@ self.addEventListener('install', function (event) { }); function trimCache(name, maxItems) { - caches.open(name).then(function(cache) { - cache.keys().then(function(keys) { - if (keys.length > maxItems) { - cache.delete(keys[0]).then(trimCache(name, maxItems)); - } + caches.open(name).then(function(cache) { + cache.keys().then(function(keys) { + if (keys.length > maxItems) { + cache.delete(keys[0]).then(trimCache(name, maxItems)); + } + }); }); - }); } // Listens for trimCache command which occurs on page load self.addEventListener('message', event => { - if (event.data.command == 'trimCache') { - trimCache(version + cacheName, maxItems); - } -}); + if (event.data.command == 'trimCache') { + trimCache(version + cacheName, maxItems); + } + }); // If the version changes, invalidate the cache self.addEventListener('activate', function (event) { - event.waitUntil( - caches.keys() - .then(function (keys) { - // Remove caches whose name is no longer valid - return Promise.all(keys - .filter(function (key) { - return key.indexOf(version) !== 0; - }) - .map(function (key) { - return caches.delete(key); - }) - ); - }) - ); + event.waitUntil( + caches.keys() + .then(function (keys) { + // Remove caches whose name is no longer valid + return Promise.all(keys + .filter(function (key) { + return key.indexOf(version) !== 0; + }) + .map(function (key) { + return caches.delete(key); + }) + ); + }) + ); }); // Listen for request events self.addEventListener('fetch', function (event) { let request = event.request; - // Always fetch non-GET requests from the network - if (request.method !== 'GET') { - event.respondWith( - fetch(request) - .catch(function () { - return caches.match(offlinePage); - }) - ); - return; - } + // Always fetch non-GET requests from the network + if (request.method !== 'GET') { + event.respondWith( + fetch(request) + .catch(function () { + return caches.match(offlinePage); + }) + ); + return; + } - let isRequestType = function(name) { return request.headers.get('Accept').includes(name); } + let isRequestType = function(name) { return request.headers.get('Accept').includes(name); } // Network-first Approach event.respondWith( - // Attepmt to grab the latest copy from the network + // Attepmt to grab the latest copy from the network fetch(request).then(function (response) { // If successful, create a copy of the response - // and save it to the cache - // Note: Ignore badges - if (request.url.includes("/badges")) { - let cacheCopy = response.clone(); - event.waitUntil(caches.open(version + cacheName).then(function (cache) { - return cache.put(request, cacheCopy); - })); - } + // and save it to the cache + let cacheCopy = response.clone(); + event.waitUntil(caches.open(version + cacheName).then(function (cache) { + return cache.put(request, cacheCopy); + })); return response; + }).catch(function (error) { - // Otherwise, check the cache. - return caches.match(request).then(function (response) { - // Show offline page if cache misses for HTML pages. - if (isRequestType('text/html')) { - return response || caches.match(offlinePage); - } - return response; - }); + // Otherwise, check the cache. + return caches.match(request).then(function (response) { + // Show offline page if cache misses for HTML pages. + if (isRequestType('text/html')) { + return response || caches.match(offlinePage); + } + return response; + + }); }) ); }); \ No newline at end of file