Skip to content

Commit 333cb69

Browse files
authored
Merge pull request #394 from ashawley/service-worker
Add initial Service Worker
2 parents e510150 + 0cdeaf3 commit 333cb69

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

_includes/footer.html

+5
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,8 @@
1212
anchors.options.visible = 'always';
1313
anchors.add('article h2, article h3, article h4, article h5, article h6');
1414
</script>{% endif %}
15+
<script type="text/javascript">
16+
if ("serviceWorker" in navigator) {
17+
navigator.serviceWorker.register("{{ '/sw.js' | relative_url }}")
18+
}
19+
</script>

sw.js

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
layout: null
3+
---
4+
var CACHE_NAME = "pixyll2-{{site.time | date: '%Y%m%d%H%M%S'}}";
5+
6+
self.addEventListener("install", function(e) {
7+
e.waitUntil(
8+
caches.open(CACHE_NAME).then(function(cache) {
9+
return cache.addAll([
10+
"{{ '/css/pixyll.css' | relative_url }}?{{ site.time | date: '%Y%m%d%H%M' }}",
11+
"{{ '/' | relative_url }}"
12+
]);
13+
})
14+
);
15+
});
16+
17+
self.addEventListener("activate", function(e) {
18+
e.waitUntil(
19+
caches.keys().then(function(names) {
20+
return Promise.all(
21+
names.map(function(name) {
22+
if (name != CACHE_NAME) {
23+
return caches.delete(name);
24+
}
25+
})
26+
);
27+
})
28+
);
29+
return clients.claim();
30+
});
31+
32+
addEventListener("fetch", function(e) {
33+
e.respondWith(
34+
caches.match(e.request).then(function(response) {
35+
return response || fetch(e.request).then(function(response) {
36+
var clonedResponse = response.clone();
37+
var hosts = [
38+
"https://fonts.googleapis.com",
39+
"https://fonts.gstatic.com",
40+
"https://maxcdn.bootstrapcdn.com",
41+
"https://cdnjs.cloudflare.com"
42+
];
43+
hosts.map(function(host) {
44+
if (e.request.url.indexOf(host) === 0) {
45+
caches.open(CACHE_NAME).then(function(cache) {
46+
cache.put(e.request, clonedResponse);
47+
});
48+
}
49+
});
50+
return response;
51+
});
52+
})
53+
);
54+
});

0 commit comments

Comments
 (0)