🔍 inp.works

메인 스레드 차단: 핸들러가 실행되기도 전에 높은 input delay

무슨 일이 일어나는가

input delay는 사용자의 클릭과 이벤트 핸들러가 시작되는 순간 사이의 시간입니다. 핸들러 자체는 완벽히 빠를 수 있지만, 메인 스레드가 긴 작업(하이드레이션, 분석 초기화, 데이터 파싱 타이머) 중간이면 이벤트는 그 작업이 끝날 때까지 큐에서 기다립니다.

이것은 핸들러로 고칠 수 없는 유일한 INP 단계입니다. 범인은 마침 실행 중이던 다른 코드이기 때문입니다.

알아보는 법

해결 방법

문제

// at page load: one 800 ms task — every click during it waits
initAnalytics()
buildSearchIndex(allProducts)
prefetchRecommendations()

해결

initAnalytics()
await scheduler.yield()                  // events can run between steps
buildSearchIndex(allProducts)
requestIdleCallback(() => prefetchRecommendations())
사이트 무료로 스캔하기 →
Advertise here