+if ('serviceWorker' in navigator) {
+ navigator.serviceWorker.register('/sw.js');
+}
+
const main = document.getElementsByTagName("main")[0];
const initialColumns = Math.max(1, Math.floor(main.clientWidth / 320) - 1);
--- /dev/null
+const cacheName = 'v1';
+
+self.addEventListener('install', event => {
+ event.waitUntil((async () => {
+ const cache = await caches.open(cacheName);
+ await cache.addAll(['index.html', '404.html', 'style.css', 'script.js', 'favicon.ico', 'github.svg', 'home.svg']);
+ })());
+});
+
+self.addEventListener('fetch', event => {
+ event.respondWith((async () => {
+ const fetchResponseP = fetch(event.request);
+ const fetchResponseCloneP = fetchResponseP.then(r => r.clone());
+
+ event.waitUntil((async () => {
+ const cache = await caches.open(cacheName);
+ await cache.add(event.request.url, await fetchResponseCloneP);
+ })());
+
+ return (await caches.match(event.request.url)) || fetchResponseP;
+ })());
+});
\ No newline at end of file