blob: 74b3c68e63bdc47aec0255d0f497dfb7bfed056b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
{{ $swfile := resources.Get "/sw.js" }}
{{ $sw := $swfile | resources.Minify }}
if('serviceWorker' in navigator) {
const PREFETCH = true;
const PREFETCH_LINK_RELS = ['index','next', 'prev', 'prefetch'];
function prefetchCache() {
if(navigator.serviceWorker.controller) {
let links = document.querySelectorAll(
PREFETCH_LINK_RELS.map((rel) => {
return 'link[rel='+rel+']';
}).join(',')
);
if(links.length > 0) {
Array.from(links)
.map((link) => {
let href = link.getAttribute('href');
navigator.serviceWorker.controller.postMessage({
action : 'cache',
url : href,
});
});
}
}
}
navigator.serviceWorker
.register('{{ $sw.Permalink | relURL }}', { scope: '/' })
.then(() => {
console.log('Service Worker Registered');
});
navigator.serviceWorker
.ready
.then(() => {
if(PREFETCH) {
prefetchCache();
}
});
}
|