En interaksjon kan deles inn i tre påfølgende faser :
Hvis inndataforsinkelsen er høy, skyldes det ofte at hovedtråden (main thread) er opptatt med annet arbeid før interaksjonens hendelsesbehandlere kan kjøre. Selve interaksjonen er kanskje ikke den direkte årsaken til treg INP .
Anbefaling: Undersøk hva som opptar hovedtråden, for eksempel lange oppgaver fra andre skript, tredjeparts widgets eller unødvendig gjengivelse. Unngå overdrevent arbeid på hovedtråden mens brukere prøver å interagere med siden .
Dette betyr at hendelsesbehandlerne tar for lang tid. "Any code running in any event listener will delay the interaction." Det inkluderer kode fra rammeverk, biblioteker, dine egne lyttere og tredjepartsskript.
Anbefaling: Reduser eller utsett arbeid i hendelsesbehandlerne. Vurder å bruke setTimeout eller requestAnimationFrame for å bryte opp lange oppgaver. Unngå å blokkere hovedtråden med tunge beregninger i selve lytteren.
Dette skyldes at nettleseren bruker lang tid på å tegne neste bilde etter at hendelsesbehandlerne er ferdige.
Anbefaling: Fokuser på å redusere gjengivelsesarbeidet, for eksempel ved å begrense CSS-omregning, unngå unødvendige layoutendringer og optimalisere malingsprosessen. Hvis du er usikker på hva som forårsaker forsinkelsen, kan du bruke Chrome DevTools sin INP-oversikt til å identifisere flaskehalser.
Du kan måle INP i JavaScript ved å overvåke hendelsestidsstemler (event timestamps) og se etter lange oppgaver. Bruk verktøy som Lighthouse, Web Vitals-biblioteket eller Chrome DevTools for å fange opp og analysere interaksjoner.
For å oppnå en god INP-verdi må du:
Ved å følge disse rådene kan du forbedre sidens responsivitet og gi brukerne en raskere og mer behagelig opplevelse.