Cache API
2022/8/3 8:37:00
bun使ってみたけど、Cache APIがないので、諸々不都合が出てきた。
Denoの方はCache APIがあるようなので、Denoに乗り換える。
https://deno.land/[email protected]?s=Cache
Service Workerで、オフラインの時だけキャッシュを使う機能を実装するより先に、ChromeのPWAインストール要件にオフライン対応必須化は延期されたことを知っていれば、もっと手抜きで済ませられたな。Service WorkerとCache APIの勉強にはなったし、利用者体験の向上にもつながるが、必ずしも今必要なことではなかった。
self.addEventListener('fetch', event => {
event.respondWith(
fetch(event.request).then(response=>{
//最初にfetchし、fetchに成功したらキャッシュに保存する
let responseClone = response.clone();
caches.open(CACHE_NAME).then(cache=>{
cache.put(event.request, responseClone);
})
return response;
}).catch(error=>{
//fetchに失敗したらキャッシュを返す;
console.log(error);
return caches.match(event.request);
})
);
}