react/scripts
Sebastian Markbåge ee7fee8f88
[Fizz] Batch Suspense Boundary Reveal with Throttle (#33076)
Stacked on #33073.

React semantics is that Suspense boundaries reveal with a throttle
(300ms). That helps avoid flashing reveals when a stream reveals many
individual steps back to back. It can also improve overall performance
by batching the layout and paint work that has to happen at each step.

Unfortunately we never implemented this for SSR streaming - only for
client navigations. This is highly noticeable on very dynamic sites with
lots of Suspense boundaries. It can look good with a client nav but feel
glitchy when you reload the page or initial load.

This fixes the Fizz runtime to be throttled and reveals batched into a
single paint at a time. We do this by first tracking the last paint
after the complete (this will be the first paint if `rel="expect"` is
respected). Then in the `completeBoundary` operation we queue the
operation and then flush it all into a throttled batch.

Another motivation is that View Transitions need to operate as a batch
and individual steps get queued in a sequence so it's extra important to
include as much content as possible in each animated step. This will be
done in a follow up for SSR View Transitions.
2025-05-01 16:09:37 -04:00
..
babel [flags] remove enableRemoveConsolePatches (#32425) 2025-02-24 10:00:22 -05:00
bench Don't minify symbols in production builds (#28881) 2024-04-20 11:23:46 -04:00
ci [ci] Try to parallelize devtools builds (#32266) 2025-01-30 11:49:04 -05:00
devtools fix[scripts/devtools/publish-release]: parse version list instead of handling 404 (#31087) 2024-09-30 17:07:54 +01:00
error-codes Add Fragment Refs to Fabric with intersection observer support (#33056) 2025-04-30 10:47:18 -04:00
eslint [Codemod] Update copyright header to Meta (#25315) 2022-10-18 11:19:24 -04:00
eslint-rules [tests] Remove to*Dev matchers (#31989) 2025-01-07 14:17:14 -05:00
flags Add --cleanup option to flags script to show groups of flags by status (#31762) 2024-12-13 15:49:06 -05:00
flow Use console.timeStamp instead of performance.measure in Component Performance Track (#32736) 2025-04-29 21:40:10 -04:00
git Remove leftover env variable logic in pre-commit hook 2015-09-01 14:35:47 -07:00
jest Fix ownerStackLimit feature gating for tests (#32726) 2025-03-26 12:01:05 -04:00
perf-counters [Codemod] Update copyright header to Meta (#25315) 2022-10-18 11:19:24 -04:00
prettier [prettier] Combine compiler and runtime configs 2024-06-21 12:05:29 -04:00
print-warnings Disable consoleWithStackDev Transform except in RN/WWW (#30313) 2024-07-12 14:39:38 -04:00
react-compiler [ci] Cache runtime and compiler only for test runs (#32608) 2025-03-13 22:21:35 -04:00
release [release] Don't lookup build-info.json when updating version numbers (#32778) 2025-03-28 14:35:29 -04:00
rollup [Fizz] Batch Suspense Boundary Reveal with Throttle (#33076) 2025-05-01 16:09:37 -04:00
shared [Flight Parcel] Align with more recent changes (#31741) 2024-12-12 14:39:25 -05:00
tasks [ci] Cleanup more references to circleci 2024-07-29 19:18:03 -04:00