Cache gjør nettsider raskere, men gammel cache kan også skjule feilrettinger. Når en CSS-fil, JavaScript-fil eller API-respons endres, må systemet ha en plan for hvordan brukeren får riktig versjon.

Cache må kunne ugyldiggjøres
Cache må kunne ugyldiggjøres visualiserer hovedpoenget i artikkelen.

Cache er en avtale

HTTP-caching styres blant annet av headers som Cache-Control, ETag og Last-Modified. De forteller klienten når en respons kan brukes på nytt, og når den bør valideres mot serveren.

Assets bør versjoneres

CSS og JavaScript kan caches lenge hvis filnavnet eller query string endres ved ny versjon. Da kan nettleseren beholde gamle filer trygt, fordi nye versjoner får ny adresse.

API-svar trenger andre regler

Et API-svar med status eller søketreff bør ofte ha kortere levetid enn en statisk CSS-fil. Cache-regler bør tilpasses innholdstypen.

ETag kan redusere trafikk

ETag lar klienten spørre om ressursen er endret. Hvis den ikke er endret, kan serveren svare med 304 Not Modified i stedet for å sende hele innholdet på nytt.

WEBoracle-vurdering

WEBoracle bør versjonere offentlige CSS- og JS-filer under redesign og bruke bevisste cache-regler for dynamiske API-svar. Dette vil redusere behovet for manuell hard refresh etter hver fix.

Konklusjon

Cache er nyttig først når den kan styres. Uten eksplisitt ugyldiggjøring kan brukeren se gamle feil etter at serveren er rettet. Med versjonering og riktige headers blir cache en styrke, ikke en feilkilde.

Kilder og videre lesning

  1. MDN Web Docs: HTTP caching
  2. MDN Web Docs: Cache-Control
  3. MDN Web Docs: ETag