Latihan 1: Service Worker Caching — Performance

Latihan 1 dari materi Service Worker Caching di Performance — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi class CacheStrategy di kode awal dengan tiga method. Cache-nya sebuah Map (key url, value data), dan network-nya pura-pura: hasil ambil dari network untuk url apa pun adalah string "fetched:" + url, misalnya "fetched:/api/news". Tiap method mengembalikan object dengan dua key, berurutan source lalu data.

  1. cacheFirst(url, cache): kalau cache.has(url), kembalikan { source: "cache", data: cache.get(url) }. Kalau gak ada, simpan "fetched:" + url ke cache dengan cache.set, lalu kembalikan { source: "network", data: "fetched:" + url }.
  2. networkFirst(url, cache): network di latihan ini selalu online, jadi selalu ambil dari network: simpan "fetched:" + url ke cache, lalu kembalikan { source: "network", data: "fetched:" + url }. Isi cache yang lama gak dipakai, tapi ditimpa dengan yang baru.
  3. staleWhileRevalidate(url, cache): kalau ada di cache, kembalikan isi lama { source: "cache", data: <isi cache> } lalu perbarui cache dengan "fetched:" + url. Kalau gak ada, sama seperti cache first: simpan, lalu kembalikan { source: "network", data: "fetched:" + url }.

Yang dicek:

Baris const cache, const strategy dan console.log di kode awal biarkan saja.

Hint