-
Notifications
You must be signed in to change notification settings - Fork 48.5k
[Fizz] Hoist hoistables to each row and transfer the dependencies to future rows #33312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be worth optimizing the serialization of the href dependencies for link stylesheets. At the moment we include the href for each boundary reveal. With the accumulation of all preceding hrefs when unblocking rows we might be repeated the same href many times. This is true before in a way but only if each boundary actually depended on that link. In this case we can have unbounded growth of hrefs by the number of rows.
Maybe we track which hrefs are emitted in which order and just start encoding a number
1d7164f
to
8bea435
Compare
…scovered boundaries Not just already blocked boundaries.
8bea435
to
8cf6f47
Compare
…future rows (#33312) Stacked on #33311. When a row contains Suspense boundaries that themselves depend on CSS, they will not resolve until the CSS has loaded on the client. We need future rows in a list to be blocked until this happens. We could do something in the runtime but a simpler approach is to just add those CSS dependencies to all those boundaries as well. To do this, we first hoist the HoistableState from a completed boundary onto its parent row. Then when the row finishes do we hoist it onto the next row and onto any boundaries within that row. DiffTrain build for [50389e1](50389e1)
Stacked on #33311.
When a row contains Suspense boundaries that themselves depend on CSS, they will not resolve until the CSS has loaded on the client. We need future rows in a list to be blocked until this happens. We could do something in the runtime but a simpler approach is to just add those CSS dependencies to all those boundaries as well.
To do this, we first hoist the HoistableState from a completed boundary onto its parent row. Then when the row finishes do we hoist it onto the next row and onto any boundaries within that row.