sw.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. let cacheName = 'v1.1::static';
  2. const pageCached = [
  3. '/',
  4. '/index.html',
  5. '/manifest.json',
  6. '/sw.js',
  7. '/tools.ico',
  8. '/assets/css/font-awesome.min.css',
  9. '/assets/css/template.css',
  10. '/assets/css/custom.css',
  11. '/assets/fonts/fontawesome-webfont.eot',
  12. '/assets/fonts/fontawesome-webfont.svg',
  13. '/assets/fonts/fontawesome-webfont.ttf',
  14. '/assets/fonts/fontawesome-webfont.woff',
  15. '/assets/fonts/fontawesome-webfont.woff2',
  16. '/assets/fonts/FontAwesome.otf',
  17. '/assets/fonts/wildy.ttf',
  18. '/assets/js/util.js',
  19. '/assets/js/main.js',
  20. '/assets/js/jquery-3.2.1.min.js',
  21. '/assets/js/jquery-ui.min.js',
  22. '/assets/js/jquery.scrolly.min.js',
  23. '/assets/js/jquery.redirect.js',
  24. '/assets/js/handlebars.min.js',
  25. '/assets/js/skel.min.js',
  26. '/assets/img/tools.svg',
  27. ];
  28. self.addEventListener('install', e => {
  29. // once the SW is installed, go ahead and fetch the resources
  30. // to make this work offline
  31. e.waitUntil(
  32. caches.open(cacheName).then(cache => {
  33. return cache.addAll(pageCached).then(() => self.skipWaiting());
  34. })
  35. );
  36. });
  37. self.addEventListener('activate', function (e) {
  38. e.waitUntil(
  39. caches.keys().then(keyList => {
  40. return Promise.all(keyList.map(key => {
  41. if (key !== cacheName) {
  42. console.log('[ServiceWorker] Removing old cache', key);
  43. return caches.delete(key);
  44. }
  45. }));
  46. })
  47. );
  48. return self.clients.claim();
  49. });
  50. // when the browser fetches a url, either response with
  51. // the cached object or go ahead and fetch the actual url
  52. self.addEventListener('fetch', event => {
  53. event.respondWith(
  54. // ensure we check the *right* cache to match against
  55. caches.open(cacheName).then(cache => {
  56. return cache.match(event.request).then(res => {
  57. return res || fetch(event.request)
  58. });
  59. })
  60. );
  61. });