Latihan 1 dari materi Service Worker Caching di Performance — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Implementasikan class CacheStrategy dengan 3 metode. Gunakan Map sebagai cache storage.
const cache = new Map();
const strategy = new CacheStrategy();
Metode yang harus diimplementasi:
networkFirst(url, cache) — Cek apakah url ada di cache Map. Jika ada, return { source: "cache", data: cache.get(url) }. Jika tidak, return { source: "network", data: "fetched:" + url } dan simpan hasilnya ke cache.
cacheFirst(url, cache) — Cek cache lebih dulu. Jika ada, return { source: "cache", data: cache.get(url) }. Jika tidak, return { source: "network", data: "fetched:" + url } dan simpan ke cache.
staleWhileRevalidate(url, cache) — Jika ada di cache, return { source: "cache", data: cache.get(url) } (dan update cache di background — untuk simulasi ini, tetap update cache.set(url, "fetched:" + url)). Jika tidak ada, return { source: "network", data: "fetched:" + url } dan simpan ke cache.