ืื ืืชืจ ืืืืจืืคืจืก ืฉืืื ืืืื ืืื ืืฉืืฉืชืืฉืื ืืืืฆืื ืขื ืืคืชืืจืื, ืคืืชืืื ืชืคืจืืืื ืื ืืืืืื ืืคืกืื – ืื ืืขื ืฉืืฉ ืืื ื Core Web Vitals ืฉืืืื ืืืืืง ืืช ืื. ืืื ื ืงืจื INP, ืื ืืฉืื ืืืื Interaction to Next Paint.
ืืืื ืืืืืคื ืืช ืืืื ืืงืืื, FID (ืื First Input Delay), ื-INP ื-12 ืืืจืฅ 2024. ืืขืื FID ืืื ืืช ืืืฉืืื ืฉื ืืืื ืืจืืงืฆืื ืืจืืฉืื ื ืืืื, INP ืขืืงื ืืืจื ืื ืืื ืืจืืงืฆืื ืฉืืืฉืชืืฉ ืืืฆืข ืืืืื ืืืืงืืจ ืืืืืื ืขื ืืืจืืขื ืืืื ืืื.
ืืคืืกื ืื ืืกืืืจ ืืื INP, ืืื ืืื ืฉืื ื ื-FID, ืืืฆื ืืืืื ืืืชื, ืืืืื ืชืืงืื ืื ืกืคืฆืืคืืื ืืืืจืืคืจืก ืชืืืื ืืืืฉื ืืืจ ืืืื.
ืืื Interaction to Next Paint (INP)?
INP ืืืื ืืช ืืืื ืฉืขืืืจ ืืื ืืื ืืจืืงืฆืื ืฉื ืืฉืชืืฉ (ืืืืฆื, ืืงืฉื ืื ืืงืืื) ืืืื ืืจืืข ืฉืื ืืืคืืคื ืืฆืืืจ ืืช ืืขืืืื ืืืืืชื ืืื. ืืืืืจ ืื ืชืื ืืืืื ืืืืจืืช ืชืืืื (responsiveness).
ืขืจื ื-INP ืืกืืคื ืฉื ืืฃ ืืืฉืื ืืื ืืืื ืืจืืงืฆืื ืืืจืืื ืืืืชืจ ืฉื ืฆืคืชื ืืืืจื ืื ืืกืฉื (ืขื ืกืื ืื ืืจืืืื ืืืคืื ืืื ืงืืืืืช ืืื ืืจืืงืฆืืืช ืจืืืช).
ืขืจืื INP ืืืืื ืื 200 ืืืืืฉื ืืืช ืื ืคืืืช. ืขืจืืื ืืจืืขืื ืื ืืขื 500 ืืืืืฉื ืืืช. – web.dev
ืืฆืืื ืืืชืงืื ืขืืืจ ื ืชืื ืื ื ืืื ืืืืคื ืืื:
- Good (ืืื): 200 ms ืื ืคืืืช
- Needs Improvement (ืืืจืฉ ืฉืืคืืจ): ืืื 200 ms ื-500 ms
- Poor (ืืจืืข): ืืขื 500 ms
ืืืื ืืืืืื ืืช INP ืืืืืืื ื-75 ืฉื ืืขืื ืืช ืืฃ, ืืืืืงื ืืื ืืืืืื ืืืกืงืืืค. ืื 75% ืืืืืงืจืื ืฉืืื ืืืืื ืืื ืืจืืงืฆืืืช ืืชืืช ื-200 ms, ืืืฃ ืขืืืจ.
ืืืืื ืืื INP ื-FID
FID ืืื ืจืง ืืช ื-input delay ืฉื ืืืื ืืจืืงืฆืื ืืจืืฉืื ื ืืืฃ. ืืืืืจ ืืื ืืชืขืื ืืฉื ื ืืืจืื ืืฉืืืื.
ืจืืฉืืช, ืืื ืืชืขืื ืืื ืืื ืืจืืงืฆืื ืฉืืืืขื ืืืืจ ืืจืืฉืื ื. ืืฉืชืืฉ ืืืื ืืืืืฅ ืขื ืชืคืจืื, ืืืื ืืืคืก ืืืืืื ืืงืจืืกืื – FID ืืชืขื ืืื ืจืง ืืืืชื ืืืืฆื ืจืืฉืื ืืช ืขื ืืชืคืจืื.
ืฉื ืืช, FID ืืื ืจืง ืืช ืืืฉืืื ืืคื ื ืฉืืืคืืคื ืืชืืื ืืขืื ืืช ืืืืจืืข. ืืื ืื ืืื ืืื ืืื ืืงื ื-event handler ืืจืืฅ, ืื ืืื ืืื ื ืืจืฉ ืืืคืืคื ืืฆืืืจ ืืช ืืชืืฆืื.
INP ืชืืคืก ืืช ืื ืืืืืืจ ืฉื ืืื ืืจืืงืฆืื: ืืืจืืข ืฉืืืฉืชืืฉ ืืืืฅ ืื ืืงืืฉ, ืืจื ืืจืฆืช ื-event handler, ืืขื ืืคืจืืื ืืื ืฉืืฆืืืจ ืขื ืืืกื. ืืืื ืฉืืื ืืื ืืืงืืืจ ืืจืื ืืืชืจ ืืื ืืืืืงืช ืชืืืืชืืืช, ืื ืืืืืื ืืืจืืช ืืืืืจืืช ืืชืืืื ืืืืืชืืช ืฉื ืืืชืจ.
ืืคืืขื, ืืชืจ ืืืื ืืื ืืขืืืจ ืืช FID ืืงืืืช (ืืืืืื ืฉืืืื ืืจืืงืฆืื ืืจืืฉืื ื ืงืจืชื ืืฉื-main thread ืืื ืคื ืื) ืืขืืืื ืืืจืืืฉ ืืืื ืืืื ืืจืืงืฆืืืช ืืืืืจืืช ืืืชืจ. INP ืชืืคืก ืืืืืง ืืขืืืช ืืืื.
ืฉืืืฉืช ืืฉืืืื ืฉื INP
ืื ืืื ืืจืืงืฆืื ืฉ-INP ืืืื ืขืืืจืช ืฉืืืฉื ืฉืืืื ื ืคืจืืื. ืืื ื ืฉืืื ืชืขืืืจ ืืื ืืืืื ืืืื ืืจืื ืืช ืืืืฆื ืืืืคืืืืืืฆืื.
Input Delay
ืืื ืืืื ืฉืขืืืจ ืืื ืจืืข ืืืื ืืจืืงืฆืื ืฉื ืืืฉืชืืฉ (ืืืฉื ืืืืฆื ืขื ืืคืชืืจ) ืืืื ืืจืืข ืฉืื ืืืคืืคื ืืชืืื ืืืจืืฅ ืืช ื-event handler ืฉื ืืืชื ืืื ืืจืืงืฆืื.
Input delay ืงืืจื ืืฉื-main thread ืขืกืืง ืืขืืืื ืืืจืช – ืืืจื ืืื ืืฉืืืืช JavaScript ืืจืืืืช. ืื ืกืงืจืืคื ืื ืืืืืงืก ืฆื-ืฉืืืฉื ืืจืืฅ ืืฉืืื ืฉื 300 ms ืืฉืืืฉืชืืฉ ืืืืฅ, ืืืคืืคื ืื ืืืื ืืืชืืื ืืขืื ืืช ืืืืืฆื ืขื ืฉืืืชื ืืฉืืื ืืกืชืืืืช.
Processing Time
ืืื ืืืื ืฉืืืคืืคื ืืงืืืฉ ืืืจืฆืช ื-event handler callbacks ืขืฆืื. ืื ื-click handler ืฉืืื ืืืฆืข ืื ืืคืืืฆืืืช DOM ืืืจืืืช, ืฉืืืฃ ื ืชืื ืื ืืืืคื ืกืื ืืจืื ื, ืื ืืคืขืื ืจื ืืืจ ืืื ืืืืฉ – ืืื ืืขืืืื ืืขืื ืืืชืื.
ืืื ืืจืืงืฆืื ืืืืืช ืืืืื ืืืคืขืื ืืกืคืจ event handlers (ืืืฉื pointerdown, pointerup, click). ืืื ืืขืืืื ืืื ืืฉื ืืืื ืืืฉืืื ืฉื ืืืื.
Presentation Delay
ืืืจื ืฉื-event handlers ืืกืืืืื, ืืืคืืคื ืขืืืื ืฆืจืื ืืืฉื ืืืืฉ ืกืื ืื ืืช, ืืืจืืฅ layout ืืืฆืืืจ ืืช ืืคืืงืกืืื ืืืขืืืื ืื. ืคืขืืื ืื ื ืงืจืืืช presentation delay.
ืขืฆื DOM ืืืืืื, ืกืืงืืืจื CSS ืืืจืืืื ืืืืฉืืื layout ืืืืืฆืื (layout thrashing) – ืืืื ืืืืืืื ืืช ื-presentation delay. ืื ืืืฃ ืฉืืื ืืืคื ืฆืืชื DOM, ืื ืืืฉืื ืกืื ืื ืืช ืืืืฉ ืืืงื ืืืชืจ ืืื.
ืืืฆื ืืืืื INP
ืขืืืืื ืืจืฉืืชืื ืืกืคืจ ืืืื ืืืืืื ืืืืืื ืฉื ืืขืืืช INP.
PageSpeed Insights (ื ืชืื ื ืฉืื)
ืืืจื ืืคืฉืืื ืืืืชืจ ืืืืืง ืืช ื-INP ืฉื ืืืชืจ ืฉืืื ืืื PageSpeed Insights. ืืืืง ืดDiscover what your real users are experiencingืด ืืจืืฉ ืืืฃ ืืฆืื ื ืชืื ื ืฉืื ืืชืื Chrome User Experience Report (ืืงืฆืจื CrUX).
ืื ืืืฃ ืฉืืื ืืื ืืกืคืืง ืชื ืืขื ืื ืชืื ื CrUX, INP ืืฆืื ืดN/Aืด. ืืืงืจื ืืื, ืขืืจื ืืชืฆืืืช ืดOriginืด ืืื ืืจืืืช ื ืชืื ืื ืืฆืืืจืื ืขื ืคื ื ืื ืืืืืืื.
PageSpeed Insights (ืืืืื ืื)
ืืืื ืืื ืืขืืจ ืืฆืืื Lighthouse ืืื ืืืฆืื ืืช ืืืง ื-Diagnostics. ืืคืฉื ืขืจืืื ืืื ืดMinimize main-thread workืด, ืดReduce JavaScript execution timeืด ื-ืดAvoid an excessive DOM sizeืด – ืืื ืืฉืคืืขืื ืืฉืืจืืช ืขื INP.
ืืขืื Lighthouse ืืืื Total Blocking Time (ืืงืฆืจื TBT) ืืื INP ืืฉืืจืืช, TBT ืืื ืคืจืืงืกื ืืขืืืชื ืืืง ื-INP. ืืคืืชืช TBT ืืืขื ืชืืื ืืฉืคืจืช ืืช INP.
ืืืืจืื ืืคืืจื ืืืชืจ ืขื ืงืจืืืช ืืืืืช PageSpeed, ืชื ื ืืื ืืคืืกื ืฉืื ืขื ืืืจืื Google PageSpeed ืืืฉืชืืฉื ืืืจืืคืจืก.
Chrome DevTools Performance Panel
ืืืืืื ืืขืฉื, ืคืชืื ืืช Chrome DevTools (F12), ืขืืจื ืืืฉืื ืืช Performance, ืืืงืืืื ืกืฉื ืชืื ืืื ืืื ืืจืืงืฆืื ืขื ืืืฃ. ืืคืฉื ืืช ื-ืดInteractionsืด lane ื-timeline – ืืื ืืฆืื ืืช ืืฉื ืืืื ืฉื ืื ืืื ืืจืืงืฆืื ืืคืืจืื ืืฉืืืฉืช ืืฉืืืื.
ืชืืกืฃ Web Vitals ื-Chrome
ืืชืืกืฃ Web Vitals ื-Chrome ืืฆืื ืขืจืื INP ืืืื ืืืช ืชืื ืืื ืืืืฉื. ืืื ืฉืืืืฉื ืืืืืงืืช ืืืืจืืช ืืืื ืคืืชืื ืืืืืงืืช.
ืื ืืืจื ื-INP ืืจืืข ืืืืจืืคืจืก
ืืืชืจื ืืืจืืคืจืก ืืฉ ืืคืืกืื ื ืคืืฆืื ืฉืืืืืืื ืืฆืืื ื INP ืืจืืขืื. ืื ื ืืืืจืืื ืืฉืืืืื ืืืืชืจ:
1. ืกืงืจืืคืืื ืฉื ืฆื ืฉืืืฉื
ืืขืงืื ืื ืืืืืงืก, ืืืืื'ืืื ืฉื ืฆ'ืื, ืจืฉืชืืช ืคืจืกืื, ืืืืขืืช ืจืฉืชืืช ืืืจืชืืืช ืืคืืงืกืืื ืฉืืืืงืืื – ืืืื ืืืกืืคืื JavaScript ืฉืจืฅ ืขื ื-main thread. ืืฉืืฉืชืืฉ ืืืฆืข ืืื ืืจืืงืฆืื ืขื ืืืฃ ืืืื ืฉืืื ืืกืงืจืืคืืื ืืืื ืจืฅ, ืืืคืืคื ืื ืืืื ืืืืื ืขื ืฉืืกืงืจืืคื ืืกืืื.
Google Tag Manager ืืืื ืืืื ืืืืกืืฃ ืขืฉืจืืช ืชืืืืช, ืื ืืืช ืืจืืฆื JavaScript ืืฉืื. Facebook Pixel, ืืงืืืืช ืกืฉื ืฉื Hotjar ืืืืืื'ืืื ืฉื ืฆ'ืื ืื ืื ืื ืืฉืืื ื ืคืืฆืื.
2. ืชืื ืืืช ืืชืืกืคืื ืืืืื
Page builders ืืื Elementor ื-Divi ืืืขื ืื ืืืืืืช ืืฉืืขืืชืืืช ืฉื JavaScript ืืืืฆืจืื ืขืฆื DOM ืืืืืื. ืชืืกืคื ืกืืืืืจ, ืชืืกืคื ืืื-ืื ืื ืืืจืืืืช WooCommerce – ืืืื ืชืืจืืื ืืขืืืก ืขื ื-main thread.
ืื ืืขื ืืื ืืชืื ืื ืืฉื, ืชื ื ืืื ืืคืืกื ืฉืืชืืชื ืืืืืจ ืขื ืืชืจืื ืืช ืืคืืชืื ืฉื ืชืื ืืช ืืืขืืืืช ืขื ืคื ื ืฉืืืืฉ ื Page Builders.
ืืื ืฉืืคืขืืืื ืืืชืจ ืชืืกืคืื, ืื ืืืชืจ JavaScript ื ืืขื ืืื ืืขืื ืช ืืฃ – ืื ืื ืืืืงืจ ืืฃ ืคืขื ืื ืืืฆืข ืืื ืืจืืงืฆืื ืขื ืืืชื ืชืืื ืืช.
3. ืืืื DOM ืืืืื
Page builders ืืืืจืืคืจืก (ืืื Elementor ืื Divi) ืืืืขืื ืืืฆืืจืช ืืื ื HTML ืืงืื ื ืื ืืขืืืง. ืกืงืฉื ืืืื ืฉื Elementor ืืืื ืืืืฆืจ ืขืฉืจืืช ืืืื ืื div ืขืืืคืื. ืืฉื-DOM ืืืจื ื-1,500 ืฆืืชืื, ืื ืืืฉืื ืกืื ืื ืืช ืืืืฉ ืืื ืืขืืจ layout ืืืงื ืืืชืจ ืืื, ืื ืฉืืืืื ืืช ืฉืื ื-presentation delay.
ืืืกืืจืืืืืช ืกืคืฆืืคืืืช ืืืืคืื ืืืขืื, ืชื ื ืืื ืืืืจืื ืฉืืชืืชื ืขื ื ืืืื ืืืื ื-DOM ืืชืืงืื Excessive DOM Size.
4. Event Handlers ืื ืืืชืืืื
ืืืืื ื scroll ืืื throttling, ืืืคืื resize ืฉืืคืขืืืื ืืืฉืืื layout ืืืืฉ, ื-click handlers ืฉืขืืฉืื ืงืจืืืืช ืกืื ืืจืื ืืืช ื DOM ืืืืจืืื ืืชืืืืช (layout thrashing) – ืืืื ืืืืืืื ืืช ืืื ืืขืืืื.
ืืืฆื ืืฉืคืจ INP ืืืืจืืคืจืก
ืืืกืืจืืืื ืืืื ืืืืื ืช ืืื ืืื ืืฉืืืฉืช ืฉืืื ื-INP. ืืชืืืื ืขื ืืื ืฉื ืืชื ืืย ืืช ืืจืืื ืืืืื ืืืืชืจ ืืืืืฅ ืืงืื ืืืืชืจ.
ื. ืืืืื ืืืฉืืื ืฉื JavaScript ืื ืงืจืืื
ืืืืจ ืืืฉืคืืข ืืืืชืจ ืฉืชืืืื ืืขืฉืืช ืขืืืจ INP ืืื ืืืืจืื JavaScript ืื-main thread ืืืื ืืขืื ืช ืืืฃ. ืืฉ ืืื ืฉืชื ืืืฉืืช ืฉืื ืืช.
ืืืืื (deferring) ืฉื ืกืงืจืืคื ืคืืจืืฉื ืฉืืืคืืคื ืืืจืื ืืืชื ืืืงืืื ืื ืืชืื ื-HTML ืืืจืืฅ ืืืชื ืืืจื ืฉืืืกืื ื ืืชื, ืืื ืืคื ื ืืืจืืข ื-DOMContentLoaded.
ืืืจืืคืจืก 6.3 ืืืขืื ืืืคืฉืจืช ืืขืฉืืช ืืืช ืืืืคื ืืืื ื ืขื ืคืจืืืจ ื-strategy ืฉื wp_enqueue_script:
wp_enqueue_script(
'my-script',
get_template_directory_uri() . '/js/my-script.js',
array(),
'1.0',
array( 'strategy' => 'defer' )
);
ืืฉืืื (delaying) ืฉื ืกืงืจืืคื ืคืืจืืฉื ืฉืืื ืื ื ืืขื ืืื ืขื ืฉืืืฉืชืืฉ ืืืฆืข ืืื ืืจืืงืฆืื ืขื ืืืฃ (ืืืืื, ืืืืฆื, ืืืข ืื ืืงืืื). ืื ืืืฉื ืืืจืกืืืืช ืืืชืจ ืืืขืืื ืืืชืจ ืืกืงืจืืคืืื ืฉืื ื ืืืฆืื ืืืืืืช.
ืืชืืกืฃ ืืืื ืื Flying Scripts ืืืคื ืืื ืืืื. ืืืกืืคืื ืืืืืช ืืคืชื ืฉืืืืืช ืกืงืจืืคืืื ืืืฉืืื (ืืืฉื gtag, fbevents, hotjar), ืืื ืื ืืจืืฆื ืขื ืืืื ืืจืืงืฆืื ืืจืืฉืื ื ืฉื ืืืฉืชืืฉ ืื timeout ืฉืืืืจืชื.
ืชืืกืคืื ืคืจืืืืื ืืื WP Rocket ื-Perfmatters ืืฆืืขืื ืืช ืืืชื ืคืื ืงืฆืืื ืืืืช ืขื ืืงืจืืช ื ืืกืคืืช.
ืืืืืข ื ืืกืฃ ืขื ืืืคื ืืืืคืื ืฉื WP Rocket ืืืืจืืืช ืกืงืจืืคืืื, ืชื ื ืืื ืืคืืกื ืฉืื ืขื ืืืจืืช ืกืงืจืืคืืื ื-Load JS Deferred ืฉื WP Rocket.
ื. ืืกืจืช JavaScript ื-CSS ืฉืืื ื ืืฉืืืืฉ
ืื ืงืืืฅ JavaScript ื-CSS ืฉืืืคืืคื ืืืขื ืืื ืขืืืื ืฉื-main thread ืฆืจืื ืืืคื ืื. ืืกืจื ืฉื ืงืืฆืื ืื ืงืื ืืืืชืจ ืืคืืืชื ืื ืืช ื-INP ืืื ืืช ื-presentation delay.
ืืฉืชืืฉื ืืชืืกืฃ ืืื Asset CleanUp ืื Perfmatters ืืื ืืืื ืกืงืจืืคืืื ืืกืื ืื ืืช ืืืคืื ืฉืืื ืื ืื ื ืืจืฉืื. ืืืืืื, ืื ืืชื ืืฉืชืืฉืื ื-Contact Form 7, ื-JavaScript ืื-CSS ืฉืื ื ืืขื ืื ืืื ืืฃ ืืืจืืจืช ืืืื – ืืื ืืชื ืฆืจืืืื ืืืชื ืจืง ืืืฃ ืืฆืืจืช ืืงืฉืจ.
ืฆืขืืื ืืืืงืืจืช ืืฉืืืื ืื ืืฉืืืืฉ:
- ืคืชืื ืืช Chrome DevTools ืืขืืจื ืืืฉืื ืืช Coverage (ืืืฆื Ctrl+Shift+P, ืืงืืืื ืดcoverageืด)
- ืืืฆื ืขื ืืคืชืืจ ื-reload ืืื ืืืชืืื ืืืงืืื
- ืืืงื ืืช ืืขืืืื ืดUnused Bytesืด – ืื ืืืจ ืืขื 70-80% ืื ืืฉืืืืฉ ืืื ืืืขืื ืืืกืจื
- ืืฉืชืืฉื ื-Asset CleanUp ืืืืฉืง ืื ืืืื ืฉื ืืืจืืคืจืก ืืื ืืืื ืืช ืืืชื ืืฉืืืื ืืืคืื ืฉืืื ืื ืื ื ืืืฆืื
ื. ืืงืื ืช ืืืื ื-DOM
DOM ืงืื ืืืชืจ ืคืืจืืฉื ืืืฉืืื ืกืื ืื ืืช ืืืขืืจื layout ืืืืจืื ืืืชืจ, ืื ืฉืืคืืืช ืืฉืืจืืช ืืช ื-presentation delay.
ืื ืืชื ืืฉืชืืฉืื ื-page builder, ืฉืงืื ืืขืืืจ ืืืืืงืื ืืืืื ืื ืฉื ืืืจืืคืจืก ืขืืืจ layouts ืคืฉืืืื. ืขืืจื ืืืืืงืื ืืืืฆืจ HTML ื ืงื ืืืชืจ ืขื ืคืืืช ืืืื ืืื ืขืืืคืื.
ืขืืืจ ืื ืืืืช WooCommerce, ืืคื ืจืฉืืืช ืืืฆืจืื ืืืืืื ืืืคืื ืืืืืืื ืืืื. ืืืืืขื ืคืืื ืฆืื ืื ืดืืขื ืขืืืด ืืืงืื ืืืฆืื ืืช ืื ืืืืฆืจืื ืืืช ืืืช. ืฉืืจื ืขื DOM ืืชืืช ื-1,500 ืฆืืชืื ืืฉืืคืฉืจ.
ื. ืืืคืืืืืืฆืืืช Event Handlers ืืกืงืจืืคืืื ืฉื ืฆื ืฉืืืฉื
ืื ืืชื ืืืชืืื JavaScript ืืืชืื ืืืฉืืช ืืืชืจ ืืืืจืืคืจืก ืฉืืื, ืฉืืจื ืขื event handlers ืจืืื.
ืืืืืื ืืืืื ื scroll ื-resize. ืืืงืื ืืืจืืฅ ืงืื ืขื ืื ืืืจืืข scroll (ืฉืืืื ืืืชืจืืฉ ืืืืช ืคืขืืื ืืฉื ืืื), ืืฉืชืืฉื ื-requestAnimationFrame ืื ืืคืื ืงืฆืืืช throttle:
let ticking = false;
document.addEventListener('scroll', () => {
if (!ticking) {
requestAnimationFrame(() => {
// your scroll logic here
ticking = false;
});
ticking = true;
}
});
ืืืื ืขื ื-layout thrashing. ืื ืชืงืจืื ืืืคืืื ื layout (ืืื offsetHeight ืื getBoundingClientRect()) ืืื ืืื ืชืืชืื ื-DOM ืืืืืื. ืงืืฆื ืืช ืืงืจืืืืช ืฉืืื, ืืื ืงืืฆื ืืช ืืืชืืืืช:
// Bad: causes layout thrashing
elements.forEach(el => {
const height = el.offsetHeight; // read (forces layout)
el.style.height = height + 10 + 'px'; // write
});
// Good: batch reads, then batch writes
const heights = elements.map(el => el.offsetHeight);
elements.forEach((el, i) => {
el.style.height = heights[i] + 10 + 'px';
});
ื. ืคืืฆืื ืืฉืืืืช ืืจืืืืช ืขื scheduler.yield()
ืืฉืืืืช ืืจืืืืช (ืื ืืืจ ืืขื 50 ms) ืืืกืืืช ืืช ื-main thread ืืืืืืืืช ืืช ื-input delay. ื-API ืฉื scheduler.yield() ืืืคืฉืจ ืืคืฆื ืืฉืืื ืืจืืื ืืืืงืื ืงืื ืื, ืื ืืชื ืืืคืืคื ืืืืื ืืช ืืืคื ืืืื ืืจืืงืฆืืืช ืืฉืชืืฉ ืืื ืืื.
async function processItems(items) {
for (const item of items) {
doWork(item);
// Yield to the browser so it can handle interactions
await scheduler.yield();
}
}
scheduler.yield() ื ืชืื ื-Chrome 129 ืืืขืื, Edge 129 ืืืขืื ื-Firefox 142 ืืืขืื, ืืื ืขืืืื ืื ื-Safari. ืืฉืชืืฉื ืื ืืฉืืจืื ืืืจืืชื (progressive enhancement), ืื ืืืกืืคื ืืช ืืืืืช scheduler-polyfill ืืชืืืืืช ืจืืื ืืืชืจ.
ืืืืคื ืืฉื ื ืืืชืจ ืฉืขืืืื ืขืืืืช ืืื ืืงืื ืืื setTimeout(callback, 0), ืฉืืคื ื ืืงืื ืืืคืืคื ืืื ืื ืฉืืืจืช ืขื ืขืืืคืืช ืืืฉืืื ืืื ืฉ-scheduler.yield() ืขืืฉื.
ืฉืืืืช ื ืคืืฆืืช
ืฉืืืืช ื ืคืืฆืืช ืขื ืืืคืืืืืืฆืืืช INP ืืืืจืืคืจืก:
ืกืืืื
INP ืืืื ืขื ืืื ืืืจ ืืืชืจ ืฉืืื ืืืื ืืืื ืืจืืงืฆืืืช ืืืืชืืืช ืฉื ืืฉืชืืฉืื – ืื ืืืืฆื, ืืงืฉื ืืืงืืื ืืืืจื ืื ืืืืงืืจ. ืืื ืืืืืฃ ืืช FID ืืืจืฅ 2024 ืืืืืื ืฉืืื ืืกืคืง ืชืืื ื ืืจืื ืืืชืจ ืฉืืื ืฉื ืชืืืืชืืืช.
ืืื ืืฉืคืจ INP ืืืชืจ ืืืืจืืคืจืก ืฉืืื, ืืชืืงืื ืืฉืืืฉืช ืืฉืืืื: ืืคืืืชื input delay ืขื ืืื ืืืืื ืืืฉืืื ืฉื ืกืงืจืืคืืื ืื ืงืจืืืืื, ืืืขืจื processing time ืขื ืืื ืฉืืืจื ืขื event handlers ืจืืื, ืืงืฆืฆื presentation delay ืขื ืืื ืืงืื ืช ืืืื ื-DOM. ืืชืืืื ืขื ืืชืืกืฃ ืืืื ืื Flying Scripts ืืื ืืืฉืืืช ืกืงืจืืคืืื ืฉื ืฆื ืฉืืืฉื, ืืฆืขื ืืืงืืจืช ืขื ืืชืืกืคืื ืฉืืื ืืืื JavaScript ืื ืืฉืืืืฉ, ืืืืงื ืืช ืกืคืืจืช ืฆืืชื ื-DOM. ืฉืื ืืืื ืงืื ืื ืืืืืงืืื ืืฆืืืจืื ืืืจ.