ืžื”ื• INP (Interaction to Next Paint) ื•ื›ื™ืฆื“ ืœืฉืคืจ ืื•ืชื• ื‘ื•ื•ืจื“ืคืจืก

ืื ืืชืจ ื”ื•ื•ืจื“ืคืจืก ืฉืœื›ื ืžื’ื™ื‘ ืœืื˜ ื›ืฉืžืฉืชืžืฉื™ื ืœื•ื—ืฆื™ื ืขืœ ื›ืคืชื•ืจื™ื, ืคื•ืชื—ื™ื ืชืคืจื™ื˜ื™ื ืื• ืžืžืœืื™ื ื˜ืคืกื™ื – ืื– ื“ืขื• ืฉื™ืฉ ืžื“ื“ ื‘ 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 - Good, Needs Improvement, Poor

ื’ื•ื’ืœ ืžื•ื“ื“ื™ื ืืช 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, Processing duration, Presentation delay

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).

PageSpeed Insights ืžืฆื™ื’ Core Web Vitals ื›ื•ืœืœ ืžื“ื“ INP

ืื ืœื“ืฃ ืฉืœื›ื ืื™ืŸ ืžืกืคื™ืง ืชื ื•ืขื” ืœื ืชื•ื ื™ CrUX, INP ื™ืฆื™ื’ ืดN/Aืด. ื‘ืžืงืจื” ื›ื–ื”, ืขื‘ืจื• ืœืชืฆื•ื’ืช ืดOriginืด ื›ื“ื™ ืœืจืื•ืช ื ืชื•ื ื™ื ืžืฆื˜ื‘ืจื™ื ืขืœ ืคื ื™ ื›ืœ ื”ื“ื•ืžื™ื™ืŸ.

PageSpeed Insights (ืื‘ื—ื•ื ื™ื)

ื’ืœืœื• ืžื˜ื” ืžืขื‘ืจ ืœืฆื™ื•ืŸ Lighthouse ื›ื“ื™ ืœืžืฆื•ื ืืช ื—ืœืง ื”-Diagnostics. ื—ืคืฉื• ืขืจื›ื™ื ื›ืžื• ืดMinimize main-thread workืด, ืดReduce JavaScript execution timeืด ื•-ืดAvoid an excessive DOM sizeืด – ืืœื” ืžืฉืคื™ืขื™ื ื™ืฉื™ืจื•ืช ืขืœ INP.

ื—ืœืง ื”-Diagnostics ืฉืœ PageSpeed Insights ื”ืžืฆื™ื’ ื”ื–ื“ืžื ื•ื™ื•ืช ืœืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ื

ื‘ืขื•ื“ 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 ืฉื”ื’ื“ืจืชื.

ื“ืฃ ื”ื’ื“ืจื•ืช ืชื•ืกืฃ Flying Scripts ืœื•ื•ืจื“ืคืจืก

ืชื•ืกืคื™ื ืคืจื™ืžื™ื•ื ื›ืžื• 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 ืฉืœื• ื ื˜ืขื ื™ื ื‘ื›ืœ ื“ืฃ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ – ืื‘ืœ ืืชื ืฆืจื™ื›ื™ื ืื•ืชื ืจืง ื‘ื“ืฃ ื™ืฆื™ืจืช ื”ืงืฉืจ.

ืฆืขื“ื™ื ืœื‘ื™ืงื•ืจืช ืžืฉืื‘ื™ื ืœื ื‘ืฉื™ืžื•ืฉ:

  1. ืคืชื—ื• ืืช Chrome DevTools ื•ืขื‘ืจื• ืœืœืฉื•ื ื™ืช Coverage (ืœื—ืฆื• Ctrl+Shift+P, ื”ืงืœื™ื“ื• ืดcoverageืด)
  2. ืœื—ืฆื• ืขืœ ื›ืคืชื•ืจ ื”-reload ื›ื“ื™ ืœื”ืชื—ื™ืœ ืœื”ืงืœื™ื˜
  3. ื‘ื“ืงื• ืืช ื”ืขืžื•ื“ื” ืดUnused Bytesืด – ื›ืœ ื“ื‘ืจ ืžืขืœ 70-80% ืœื ื‘ืฉื™ืžื•ืฉ ื”ื•ื ืžื•ืขืžื“ ืœื”ืกืจื”
  4. ื”ืฉืชืžืฉื• ื‘-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 ื˜ื•ื‘?
INP ืฉืœ 200 ืžื™ืœื™ืฉื ื™ื•ืช ืื• ืคื—ื•ืช ื ื—ืฉื‘ ื˜ื•ื‘. ื‘ื™ืŸ 200 ms ืœ-500 ms ื“ื•ืจืฉ ืฉื™ืคื•ืจ, ื•ืžืขืœ 500 ms ื ื—ืฉื‘ ื’ืจื•ืข. ื’ื•ื’ืœ ืžื•ื“ื“ื™ื ืืช ื–ื” ื‘ืื—ื•ื–ื•ืŸ ื”-75 ืฉืœ ื˜ืขื™ื ื•ืช ื“ืฃ.
ื”ืื INP ืžืฉืคื™ืข ืขืœ ื“ื™ืจื•ื’ SEO?
ื›ืŸ. INP ื”ื•ื ืื—ื“ ืžืฉืœื•ืฉืช ืžื“ื“ื™ Core Web Vitals (ืœืฆื“ LCP ื•-CLS) ืฉื’ื•ื’ืœ ืžืฉืชืžืฉื™ื ื‘ื”ื ื›ืกื™ื’ื ืœ ื“ื™ืจื•ื’. ื‘ืขื•ื“ ืฉืื™ื›ื•ืช ื”ืชื•ื›ืŸ ื•ื”ืจืœื•ื•ื ื˜ื™ื•ืช ืขื“ื™ื™ืŸ ื—ืฉื•ื‘ื™ื ื™ื•ืชืจ, ืขืžื™ื“ื” ื‘ืฉืœื•ืฉืช ืžื“ื“ื™ Core Web Vitals ื ื•ืชื ืช ืœื“ืคื™ื ืฉืœื›ื ื™ืชืจื•ืŸ ื‘ื“ื™ืจื•ื’ ื‘ืชื•ืฆืื•ืช ื”ื—ื™ืคื•ืฉ.
ืœืžื” PageSpeed Insights ืžืฆื™ื’ N/A ืขื‘ื•ืจ INP?
INP ื“ื•ืจืฉ ื ืชื•ื ื™ ืฉื˜ื— ืž-Chrome User Experience Report (ื‘ืงืฆืจื” CrUX) ืžืžืฉืชืžืฉื™ื ืืžื™ืชื™ื™ื. ืื ืœื“ืฃ ืฉืœื›ื ืื™ืŸ ืžืกืคื™ืง ืชื ื•ืขื”, ืœ-CrUX ืœื ื™ื”ื™ื• ืžืกืคื™ืง ื“ื’ื™ืžื•ืช ื›ื“ื™ ืœื“ื•ื•ื— ืขืจืš INP. ื ืกื• ืœืขื‘ื•ืจ ืœืชืฆื•ื’ืช ืดOriginืด ื‘-PageSpeed Insights ื›ื“ื™ ืœืจืื•ืช ื ืชื•ื ื™ื ืžืฆื˜ื‘ืจื™ื ืขืœ ืคื ื™ ื›ืœ ื”ื“ื•ืžื™ื™ืŸ.
ื”ืื Total Blocking Time (TBT) ื–ื”ื” ืœ-INP?
ืœื. TBT ืžื•ื“ื“ ืืช ืกืš ื”ื–ืžืŸ ืฉืžืฉื™ืžื•ืช ืืจื•ื›ื•ืช ื—ื•ืกืžื•ืช ืืช ื”-main thread ื‘ื–ืžืŸ ื˜ืขื™ื ืช ื”ื“ืฃ. INP ืžื•ื“ื“ ืชื’ื•ื‘ืชื™ื•ืช ื‘ืคื•ืขืœ ืœืื™ื ื˜ืจืืงืฆื™ื•ืช ืžืฉืชืžืฉ ืœืื•ืจืš ื›ืœ ื”ื‘ื™ืงื•ืจ ื‘ื“ืฃ. ืขื ื–ืืช, TBT ื”ื•ื ืคืจื•ืงืกื™ ืžืขื‘ื“ืชื™ ืฉื™ืžื•ืฉื™ - ื”ืคื—ืชืช TBT ื›ืžืขื˜ ืชืžื™ื“ ืžืฉืคืจืช INP ืžื›ื™ื•ื•ืŸ ืฉืฉื ื™ื”ื ืžื•ืฉืคืขื™ื ืžืขื•ืžืก ืขืœ ื”-main thread.
ื”ืื ืืคืฉืจ ืœืฉืคืจ INP ื‘ืœื™ ืชื•ืกืฃ ื‘ื™ืฆื•ืขื™ื?
ื›ืŸ. ืชื•ื›ืœื• ืœื“ื—ื•ืช ืกืงืจื™ืคื˜ื™ื ื‘ืื•ืคืŸ ืžื•ื‘ื ื” ื‘ืืžืฆืขื•ืช ืคืจืžื˜ืจ ื”-strategy ืฉืœ wp_enqueue_script ื‘ื•ื•ืจื“ืคืจืก 6.3 ื•ืžืขืœื”, ืœื”ืกื™ืจ ืชื•ืกืคื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ, ืœื”ืงื˜ื™ืŸ ืืช ื’ื•ื“ืœ ื”-DOM ืขืœ ื™ื“ื™ ืคื™ืฉื•ื˜ ืชื‘ื ื™ื•ืช, ื•ืœื‘ืฆืข ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืœ-event handlers ืฉืœ JavaScript. ืชื•ืกืคื™ื ื›ืžื• Flying Scripts, WP Rocket ืื• Perfmatters ืžืื•ื˜ืžื˜ื™ื ื—ืœืง ืžื–ื”, ืื‘ืœ ื”ื ืœื ื”ื›ืจื—ื™ื™ื.
ืื™ืœื• ืชื•ืกืคื™ ื•ื•ืจื“ืคืจืก ืคื•ื’ืขื™ื ื‘-INP ื”ื›ื™ ื”ืจื‘ื”?
Page builders (Elementor, Divi), ืชื•ืกืคื™ ืกืœื™ื™ื“ืจ, ื•ื•ื™ื“ื’'ื˜ื™ื ืฉืœ ืฆ'ืื˜ ื—ื™, ื•ื”ื’ื“ืจื•ืช ืื ืœื™ื˜ื™ืงืก ื›ื‘ื“ื•ืช (ืžืกืคืจ ืžืขืงื‘ื™ื ื“ืจืš Google Tag Manager) ื”ื ื”ืืฉืžื™ื ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ. ื”ื ื˜ื•ืขื ื™ื ื›ืžื•ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืœ JavaScript ื•ื™ื•ืฆืจื™ื ืžื‘ื ื™ DOM ืžื•ืจื›ื‘ื™ื ืฉืžื’ื“ื™ืœื™ื ืืช ื›ืœ ืฉืœื•ืฉืช ืฉืœื‘ื™ ื”ื”ืฉื”ื™ื” ืฉืœ INP.

ืกื™ื›ื•ื

INP ืžื•ื“ื“ ืขื“ ื›ืžื” ืžื”ืจ ื”ืืชืจ ืฉืœื›ื ืžื’ื™ื‘ ืœืื™ื ื˜ืจืืงืฆื™ื•ืช ืืžื™ืชื™ื•ืช ืฉืœ ืžืฉืชืžืฉื™ื – ื›ืœ ืœื—ื™ืฆื”, ื”ืงืฉื” ื•ื”ืงืœื“ื” ืœืื•ืจืš ื›ืœ ื”ื‘ื™ืงื•ืจ. ื”ื•ื ื”ื—ืœื™ืฃ ืืช FID ื‘ืžืจืฅ 2024 ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžืกืคืง ืชืžื•ื ื” ื”ืจื‘ื” ื™ื•ืชืจ ืฉืœืžื” ืฉืœ ืชื’ื•ื‘ืชื™ื•ืช.

ื›ื“ื™ ืœืฉืคืจ INP ื‘ืืชืจ ื”ื•ื•ืจื“ืคืจืก ืฉืœื›ื, ื”ืชืžืงื“ื• ื‘ืฉืœื•ืฉืช ื”ืฉืœื‘ื™ื: ื”ืคื—ื™ืชื• input delay ืขืœ ื™ื“ื™ ื“ื—ื™ื™ื” ื•ื”ืฉื”ื™ื” ืฉืœ ืกืงืจื™ืคื˜ื™ื ืœื ืงืจื™ื˜ื™ื™ื, ืžื–ืขืจื• processing time ืขืœ ื™ื“ื™ ืฉืžื™ืจื” ืขืœ event handlers ืจื–ื™ื, ื•ืงืฆืฆื• presentation delay ืขืœ ื™ื“ื™ ื”ืงื˜ื ืช ื’ื•ื“ืœ ื”-DOM. ื”ืชื—ื™ืœื• ืขื ื”ืชื•ืกืฃ ื”ื—ื™ื ืžื™ Flying Scripts ื›ื“ื™ ืœื”ืฉื”ื•ืช ืกืงืจื™ืคื˜ื™ื ืฉืœ ืฆื“ ืฉืœื™ืฉื™, ื‘ืฆืขื• ื‘ื™ืงื•ืจืช ืขืœ ื”ืชื•ืกืคื™ื ืฉืœื›ื ืœื’ื‘ื™ JavaScript ืœื ื‘ืฉื™ืžื•ืฉ, ื•ื‘ื“ืงื• ืืช ืกืคื™ืจืช ืฆืžืชื™ ื”-DOM. ืฉื™ื ื•ื™ื™ื ืงื˜ื ื™ื ื•ืžืžื•ืงื“ื™ื ืžืฆื˜ื‘ืจื™ื ืžื”ืจ.

ื“ื™ื•ืŸ ื•ืชื’ื•ื‘ื•ืช
[  0 ืชื’ื•ื‘ื•ืช  ]

ื”ืฉืื™ืจื• ืชื’ื•ื‘ื”

ื”ื•ืกื™ืคื• ืงื•ื“ ื‘ืืžืฆืขื•ืช ื”ื›ืคืชื•ืจื™ื ืžื˜ื”. ืœืžืฉืœ, ื‘ื›ื“ื™ ืœื”ื•ืกื™ืฃ PHP ืœื—ืฆื• ืขืœ ื”ื›ืคืชื•ืจ PHP ื•ื”ื•ืกื™ืคื• ืืช ื”ืงื•ื“ ื‘ืชื•ืš ื”ืฉื•ืจื˜ืงื•ื“. ืžืฆืืชื ืฉื’ื™ืื” ื‘ืคื•ืกื˜? ืขื“ื›ื ื• ืื•ืชื ื•...