From 37ea4e795a96f7f059c405a29e7e3e7e782224ef Mon Sep 17 00:00:00 2001 From: DarkShy Date: Sat, 14 Jan 2023 02:13:04 +0300 Subject: [PATCH] Changes to be committed: modified: index.html new file: js/pwabuilder-sw.js new file: offline.html --- index.html | 2 +- js/pwabuilder-sw.js | 47 +++++++++++++++++++++++++++++++++++++++++++++ offline.html | 21 ++++++++++++++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 js/pwabuilder-sw.js create mode 100644 offline.html diff --git a/index.html b/index.html index 9f0aae1..9f0d4de 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@ \ No newline at end of file diff --git a/js/pwabuilder-sw.js b/js/pwabuilder-sw.js new file mode 100644 index 0000000..80630ff --- /dev/null +++ b/js/pwabuilder-sw.js @@ -0,0 +1,47 @@ +// This is the "Offline page" service worker + +importScripts('https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js'); + +const CACHE = "DarkShy-page"; + +// TODO: replace the following with the correct offline fallback page i.e.: const offlineFallbackPage = "offline.html"; +const offlineFallbackPage = "offline.html"; + +self.addEventListener("message", (event) => { + if (event.data && event.data.type === "SKIP_WAITING") { + self.skipWaiting(); + } +}); + +self.addEventListener('install', async (event) => { + event.waitUntil( + caches.open(CACHE) + .then((cache) => cache.add(offlineFallbackPage)) + ); +}); + +if (workbox.navigationPreload.isSupported()) { + workbox.navigationPreload.enable(); +} + +self.addEventListener('fetch', (event) => { + if (event.request.mode === 'navigate') { + event.respondWith((async () => { + try { + const preloadResp = await event.preloadResponse; + + if (preloadResp) { + return preloadResp; + } + + const networkResp = await fetch(event.request); + return networkResp; + } catch (error) { + + const cache = await caches.open(CACHE); + const cachedResp = await cache.match(offlineFallbackPage); + return cachedResp; + } + })()); + } +}); \ No newline at end of file diff --git a/offline.html b/offline.html new file mode 100644 index 0000000..0b6fe4b --- /dev/null +++ b/offline.html @@ -0,0 +1,21 @@ +html> + + DarkShy - main page + + + + + + + + + + + + + + +

DarkShy

+

У вас что-то сломалось, или сервер не доступен.

+

Код ошибки: No internet connection or server is dead

+ \ No newline at end of file