LoAF script invokers on React sites

Among sites recording Long Animation Frames, 59.8% (3,490) trigger long frames from DOM event listeners (95% good INP, 79ms median), 44.3% from classic script evaluation (94% good INP), and 18.8% from timer/rAF callbacks (96% good INP).

Field data PhoneDesktopAll Scope All sites October 2026 edition · All devices field outcomes · React sites only
React Scoped to 9,570 sites out of 210,902 analyzed (frameworks) Compare with all sites →

18.8% of React sites use timer and rAF callbacks Long Animation Frame (LoAF) script invoker type, and 96% of those sites have a good INP, against 95% of all React sites.

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 5,840 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
1

INP pass rate

Sites with timer and rAF callbacks Long Animation Frame (LoAF) script invoker type have a good INP most often: 96%, against 95% of all React sites. Sites with classic script evaluation LoAF invokers have it least often, at 94%.

SitesGood, needs improvement, poor INPMedian
All React sites9,11095%80ms
Timer / rAF callback (setTimeout / requestAnimationFrame) 18.8%1,05096%91ms
DOM event listener (click / scroll / input) 59.8%3,33695%79ms
Classic <script> evaluation 44.3%2,44894%80ms
ES module <script type="module"> evaluation 0.3%2094%121ms
Promise microtask resolution (then / async-await) 0.8%4688%103ms
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 5,840 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Long Animation Frame (LoAF) script invoker type usage

DOM event listeners is the most used: 59.8% of React sites. Timer and rAF callbacks is 18.8% of React sites.

Sites using each option (sites can use more than one) 5,840 sites
DOM event listener (click / scroll / input) 59.8% Classic <script> evaluation 44.3% Timer / rAF callback (setTimeout / requestAnimationFrame) 18.8%
DOM event listener (click / scroll / input) 59.8% Classic <script> evaluation 44.3% Timer / rAF callback (setTimeout / requestAnimationFrame) 18.8% Promise microtask resolution (then / async-await) 0.8% ES module <script type="module"> evaluation 0.3%
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 5,840 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Long Animation Frame (LoAF) script invoker type per platform

On Wix, 74% of sites use DOM event listeners Long Animation Frame (LoAF) script invoker type, and 97% of Wix sites have a good INP, against 95% of all sites. On WordPress, 43% of sites use timer and rAF callbacks, and 98% of WordPress sites have a good INP.

PlatformLong Animation Frame (LoAF) script invoker type on its sitesGood INP
React sites with Long Animation Frame (LoAF) script invoker type 5,840 sitesDOM event listener (click / scroll / input) 60%Classic <script> evaluation 44%Timer / rAF callback (setTimeout / requestAnimationFrame) 19%95%
WordPress 1,383 sitesTimer / rAF callback (setTimeout / requestAnimationFrame) 43%Classic <script> evaluation 38%DOM event listener (click / scroll / input) 35%98%
Wix 3,502 sitesDOM event listener (click / scroll / input) 74%Classic <script> evaluation 46%97%
DOM event listener (click / scroll / input) Classic <script> evaluation Timer / rAF callback (setTimeout / requestAnimationFrame) Promise microtask resolution (then / async-await) ES module <script type="module"> evaluation
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 5,840 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
4

LoAF script invoker or the platform

Does the platform explain the Long Animation Frame (LoAF) script invoker type difference?

On Wix, 96% of sites with timer and rAF callbacks Long Animation Frame (LoAF) script invoker type have a good INP, against 98% of Wix sites with DOM event listeners. Within Wix, sites with timer and rAF callbacks and DOM event listeners have a good INP about equally often. On WordPress, 98% of sites with timer and rAF callbacks Long Animation Frame (LoAF) script invoker type have a good INP, against 98% of WordPress sites with DOM event listeners. Within WordPress, sites with timer and rAF callbacks and DOM event listeners have a good INP about equally often.

What triggers main-thread Long Animation Frames during load and interaction

The Long Animation Frames API (LoAF) attributes every frame over 50ms to the exact invoker that started the script task. Across 3,490 sites (59.8% of LoAF sites), DOM event listeners trigger long frames (95% good INP, 79ms median). Classic script evaluation accounts for 44.3% (94% good INP) and timer/rAF user-callbacks account for 18.8% (96% good INP), while heavy module-script evaluation (0.3%) and unbatched Promise microtasks (0.8%) drop to 94% and 88% good INP.

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 5,840 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
5

Understanding Long Animation Frame script invokers

Update visual UI state first inside click/keydown event listeners, then yield via scheduler.yield() before running analytics, storage writes, or non-critical Promise chains. Across all sites with Long Animation Frames, 59.8% trigger long frames in event listeners (95% good INP) and 0.8% in Promise microtasks (88% good INP).

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 9,110 with all devices field data · 5,840 sites with Long Animation Frame (LoAF) script invoker typeBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals INP phase breakdown → Yielding strategy → Blocking frame breakdown → Scheduling API use → By Arjen Karel · 9,570 crawled React sites (9,110 with all devices Chrome field data, 5,840 sites with Long Animation Frame (LoAF) script invoker type, October 2026) · How we measured