-
Notifications
You must be signed in to change notification settings - Fork 1
/
sw.js
1 lines (1 loc) · 1.18 KB
/
sw.js
1
var ver="v2020",name="cache",time="1234",CACHENAME=`${name}-${ver}-${time}`,expectedCaches=[`${name}-${ver}-${time}`],FILES=["/manifest.json","/files/images/blog/404.png","/css/app.css","/js/app.js","/js/modules/chart.js","/js/modules/conf_chart.js","/js/modules/jquery.js","/js/modules/load.js","/js/modules/modal.js","/js/modules/prism.js","/js/modules/script.js","/js/modules/scroll.js","/js/modules/section.js","/index.html","/json/search.json"];self.addEventListener("install",e=>{e.waitUntil(caches.open(CACHENAME).then(e=>{fetch("./json/search.json").then(e=>e.json()).then(s=>(FILES=FILES.concat(s.map(e=>e.url)),e.addAll(FILES)))}))}),self.addEventListener("activate",e=>{e.waitUntil(caches.keys().then(e=>Promise.all(e.map(e=>{if(!expectedCaches.includes(e))return caches.delete(e)}))).then(e=>{console.log(CACHENAME+" now ready to handle fetches!")}))}),self.addEventListener("fetch",e=>{e.respondWith(caches.open(CACHENAME).then(s=>s.match(e.request).then(t=>t||fetch(e.request).then(t=>(s.put(e.request,t.clone()),t)).catch(s=>{var t=e.request;return"image"===e.request.destination&&(t="files/images/blog/404.png"),"document"===e.request.destination&&(t="index.html"),caches.match(t)}))))});