Latihan 1 dari materi CDN & Edge Caching di Performance — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua function di kode awal.
parseCacheControl(header) menerima string header Cache-Control dan mengembalikan object dengan empat key, berurutan:
maxAge: angka dari max-age=... (pakai Number), atau 0 kalau gak ada
isPublic: true kalau ada directive public
noStore: true kalau ada directive no-store
immutable: true kalau ada directive immutable
Pecah header di koma dan trim() tiap bagian, lalu bandingkan directive-nya utuh.
calculateCacheHitRatio(totalRequests, cacheHits) mengembalikan persen cacheHits / totalRequests × 100, dibulatkan 2 desimal sebagai angka (bukan string dari toFixed), dan 0 kalau totalRequests adalah 0.
Cek tersembunyi: calculateCacheHitRatio(200, 150) harus 75, dan calculateCacheHitRatio(3, 1) harus 33.33
Baris console.log di kode awal biarkan saja.
Hint
parseCacheControl memecah header jadi daftar directive, lalu mengecek directive mana yang ada. calculateCacheHitRatio cuma pembagian dikali 100, dengan penjagaan untuk total 0 dan pembulatan 2 desimal yang tetap berupa angka.
const directives = header.split(',').map((part) => part.trim()); cari yang diawali 'max-age=' dengan find dan startsWith, dan cek yang lain dengan directives.includes('public'). Untuk rasio: if (totalRequests === 0) return 0; lalu Math.round(... * 10000) / 100.
const found = directives.find((d) => d.startsWith('max-age=')); return { maxAge: found ? Number(found.split('=')[1]) : 0, isPublic: directives.includes('public'), noStore: directives.includes('no-store'), immutable: directives.includes('immutable') }; dan return Math.round((cacheHits / totalRequests) * 10000) / 100;
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...