Hurtigere hjemmeside hjælp til en langsom hjemmeside

Main thread

Main thread er browserens primære tråd hvor DOM, CSS, de fleste JavaScript-opkald og layout sker. Når den er optaget, føles siden treg og INP stiger.

Skrevet af Kim Tetzlaff

Kort fortalt: Næsten alt hvad klassiske websites gør i JavaScript - event handlers, hydration, tredjeparts-tags - skal igennem main thread (med undtagelse af begrænset arbejde i workers og visse parallelle tråde). Derfor er “optaget hovedtråd” et præcist billede på mange INP-problemer.

Hvad sker der på main thread?

  • Parse og evaluering af scripts
  • Style calculation, layout, paint for det meste af siden
  • Mange typer input-events før de når jeres kode - hvis tråden er optaget, venter inputkøen

JavaScript der kører længe i ét hug bliver til long tasks og bidrager til TBT i lab.

Symptomer for brugeren

  • Forsinket reaktion på klik og tastatur
  • Raslende scroll på mobil når CPU er mættet
  • Første interaktion efter load føles tung selv om LCP var fin - fordi hydration og widgets stadig kører

Strategier der aflaster

  • Opdel arbejde i mindre tasks (scheduler.postTask, requestIdleCallback, setTimeout-chunking)
  • Flyt tung beregnings- og parse-arbejde til Web Workers hvor DOM ikke kræves
  • Reducér og udskyd third-party scripts
  • Code splitting så mindre parse ved første besøg
  • Undgå unødvendig layout thrashing - læs og skriv DOM i batch

Måling

Chrome Performance-panelet viser flame charts og Main-sporet. Kombinér med Long Animation Frames og feltdata (RUM) for at se om problemer rammer jeres rigtige brugere.

Relaterede begreber

FAQ

Findes der en nedre grænse for main thread-arbejde?

Ikke som en fast tal-værdi. Moderne browsere paralleliserer noget compositing og paint, men det meste af jeres JS og layout kører stadig serielt på main thread. Brug Performance-profil til konkrete flaskehalse.

Er Web Workers altid løsningen?

De hjælper på CPU-tunge beregninger der ikke kræver DOM. Al manipulation af DOM og de fleste frameworks’ event handlers skal stadig køre på main thread - design API’er så arbejde skilles.

Hvordan hænger main thread sammen med INP?

INP måler forsinkelse på interaktioner. Hvis main thread er optaget af lange tasks, forsinkes input. Derfor korrelerer reduktion af long tasks og tredjeparts JS ofte med bedre INP.

Hvad med input delay vs load?

Load-metriker som TBT fokuserer på startfasen. INP dækker hele sessionen - main thread kan stadig være tung efter load ved hydration, lazy chunks og widgets.

Næste skridt fra begreb til handling

Guides og blogindlæg der matcher begrebets emne - ud fra fælles tags og sidens fokus.

Om forfatteren

Kim Tetzlaff

Kim skriver og vedligeholder indhold på hurtigere-hjemmeside.dk med fokus på målelig performance, Core Web Vitals og teknisk SEO. Målet er at gøre optimering konkret: hvad der faktisk flytter tal i feltdata, og hvordan du finder den korteste vej fra symptom til fix.

Kim Tetzlaff