Merårde API-er som formet den moderne webben (Og hva de lærer oss om teknologibeslutninger)

Jun 22, 2026 web-development browser-apis history-api frontend-development backward-compatibility single-page-applications javascript web-standards developer-experience

Da utviklere la til et parameter ingen bruker – og hvorfor det blir værende for alltid

Har du noen gang lurt på hvorfor History.pushState() tar tre parametre når bare to faktisk fungerer?

Som frontend-utvikler kjenner du sannsynligvis til canPlayType(). Den returnerer "probably", "maybe" eller en tom streng – altså et probabilistisk svar pakket inn i vage formuleringer. Morsomt, men rotete.

Men Historie-APIet tar seieren når det kommer til å demonstrere websiden avhengighet av å aldri ødelegge eksisterende kode.

Hva er greia med det tredje parameteret?

Når du kaller pushState(), sender du med state, title og url. Statussen er praktisk – den lar appen gjenopprette data når brukeren klikker tilbake. URL-en er nyttig for å oppdatere adressefeltet uten å laste siden på nytt.

Men det der tredje parameteret? Fullstendig ignorert. Alle store nettlesere kaster det rett i søppelbøtta.

Så hvorfor eksisterer det i det hele tatt?

Historien bak

I 2008, da Historie-APIet ble utformet, tenkte noen at nettlesere burde la apper sette en egen tittel for hver historieoppføring. Ideen var at SPA-en din kunne vise "Dashbord" i appen, mens nettleserens historikk inneholdt "Analyserapport".

Det hørtes fornuftig ut den gangen. Men nettleserleverandørene skjønte fort at dette ville skape forvirring. Hva skjer når en bruker bokmerker en historieoppføring og tittelen ikke matcher det de ser i fanene sine?

I stedet for å håndtere det rotet, valgte nettleserne ganske enkelt å ignorere parameteret.

Problemet? Innen da hadde utallige nettsider allerede bygget appene sine med tre parametre. Å fjerne det ville ødelegge produksjonskoden. Å gjøre det valgfritt ville skape kaos i eksisterende pushState(state, url)-kall.

Så spesifikasjonen gjorde noe elegant: den omdøpte parameteret til unused og dokumenterte at det ikke har noen effekt.

Nettets skitne hemmelighet

Dette er nettets filosofi på kornet: bakoverkompatibilitet over alt annet. Webben vil strekke seg langt – bokstavelig talt – for å sikre at kode fra 2008 fortsatt kjører i dagens nettlesere.

Denne tankegangen er eksakt hvorfor vi hos NameOcean anbefaler statiske nettsider og velprøvde webteknologier. Når du bygger noe som må vare – mediearkiv, dokumentasjon, landingssider – er stabiliteten til standard webteknologi ingen begrensning. Det er en funksjon.

Det samme gjelder når du velger domeneregistrar eller hosting-leverandør. Du vil ha selskaper som forstår langspillet. Weben går ingen steder, og teknologiene du bygger på i dag bør fortsatt fungere om ti år.

Lærdommen

For utviklere og startups: Noen ganger blir "feil" beslutning permanent – ikke fordi den er riktig, men fordi for mye avhenger av den.

Det er ikke en bug i webben. Det er en funksjon som holder millioner av nettsider i gang.

Så neste gang du støter på et rart API eller et utdatert parameter: Noen, et sted, tok en avgjørelse for år siden, og nå er det hugget inn i websidens fundament.

Respekter raritetene. De holder ting i gang.

Read in other languages:

PT PL NL HU IT FR ES DE DA ZH-HANS EN