Add caching service worker
TODO: Add a build step that automatically caches all posts as well Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
This commit is contained in:
parent
7c46a25ae6
commit
8295277cba
|
@ -0,0 +1,38 @@
|
|||
const cacheName = 'cache-v1';
|
||||
const precacheResources = [
|
||||
'/',
|
||||
'/posts/',
|
||||
'index.html',
|
||||
'/bundle.min.js',
|
||||
'/main.min.css',
|
||||
'/fonts/Inter-UI-Regular.woff2',
|
||||
'/fonts/Inter-UI-Bold.woff2',
|
||||
'/fonts/Inter-UI-Regular.woff',
|
||||
'/fonts/Inter-UI-Bold.woff',
|
||||
];
|
||||
|
||||
self.addEventListener('install', event => {
|
||||
console.log('Service worker install event!');
|
||||
event.waitUntil(
|
||||
caches.open(cacheName)
|
||||
.then(cache => {
|
||||
return cache.addAll(precacheResources);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
self.addEventListener('activate', event => {
|
||||
console.log('Service worker activate event!');
|
||||
});
|
||||
|
||||
self.addEventListener('fetch', event => {
|
||||
console.log('Fetch intercepted for:', event.request.url);
|
||||
event.respondWith(caches.match(event.request)
|
||||
.then(cachedResponse => {
|
||||
if (cachedResponse) {
|
||||
return cachedResponse;
|
||||
}
|
||||
return fetch(event.request);
|
||||
})
|
||||
);
|
||||
});
|
|
@ -6,6 +6,19 @@
|
|||
<meta name="keywords" content="{{ .Site.Params.keywords }}" />
|
||||
<meta name="robots" content="noodp" />
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
<script>
|
||||
if ('serviceWorker' in navigator) {
|
||||
window.addEventListener('load', function () {
|
||||
navigator.serviceWorker.register('service-worker.js')
|
||||
.then(reg => {
|
||||
console.log('Service worker registered!', reg);
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('Service worker registration failed: ', err);
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
{{ block "title" . }}
|
||||
<title>
|
||||
|
|
Loading…
Reference in New Issue