diff options
author | 2018-07-15 21:51:09 -0700 | |
---|---|---|
committer | 2018-07-15 21:51:09 -0700 | |
commit | 6aa02680d80709d714672dd842dc3dc2533339fe (patch) | |
tree | d6cf7b40e5662983fd3132630417aa91a1a35c15 /ui/static/js | |
parent | c926498d3d12f4e59c5fe0cd40a77c42d15c30b9 (diff) |
Add service worker to cache feed icons
Diffstat (limited to 'ui/static/js')
-rw-r--r-- | ui/static/js/bootstrap.js | 7 | ||||
-rw-r--r-- | ui/static/js/sw.js | 14 |
2 files changed, 21 insertions, 0 deletions
diff --git a/ui/static/js/bootstrap.js b/ui/static/js/bootstrap.js index 98ad635..bd3b09e 100644 --- a/ui/static/js/bootstrap.js +++ b/ui/static/js/bootstrap.js @@ -71,4 +71,11 @@ document.addEventListener("DOMContentLoaded", function() { mouseHandler.onClick(".logo", () => menuHandler.toggleMainMenu()); mouseHandler.onClick(".header nav li", (event) => menuHandler.clickMenuListItem(event)); } + + if ("serviceWorker" in navigator) { + let scriptElement = document.getElementById("service-worker-script"); + if (scriptElement) { + navigator.serviceWorker.register(scriptElement.src); + } + } }); diff --git a/ui/static/js/sw.js b/ui/static/js/sw.js new file mode 100644 index 0000000..8e32fcb --- /dev/null +++ b/ui/static/js/sw.js @@ -0,0 +1,14 @@ +self.addEventListener("fetch", (event) => { + if (event.request.url.includes("/feed/icon/")) { + event.respondWith( + caches.open("feed_icons").then((cache) => { + return cache.match(event.request).then((response) => { + return response || fetch(event.request).then((response) => { + cache.put(event.request, response.clone()); + return response; + }); + }); + }) + ); + } +}); |