🔍 inp.works

Schwerer Event-Handler: warum ein Klick 500 ms dauert und wie du es behebst

Was passiert

Wenn ein Nutzer klickt, führt der Browser deinen Event-Handler vollständig aus, bevor er den nächsten Frame zeichnen kann. Erledigt der Handler Hunderte Millisekunden synchroner Arbeit — ein großes Array filtern, DOM aufbauen, JSON parsen — ist die Seite genau so lange eingefroren. Der Nutzer sieht nichts, bis der Handler zurückkehrt.

Das ist das häufigste INP-Problem und zeigt sich in der INP-Aufschlüsselung als lange Processing-Time-Phase.

So erkennst du es

So behebst du es

Problem

button.addEventListener("click", () => {
  const results = filterRows(allRows)   // 400 ms of sync work
  renderTable(results)                  // user saw nothing until now
})

Lösung

button.addEventListener("click", async () => {
  button.classList.add("loading")       // instant feedback, painted first
  await scheduler.yield()               // let the browser paint
  const results = filterRows(allRows)
  renderTable(results)
  button.classList.remove("loading")
})
Scanne deine Website kostenlos →
Advertise here