Skip to content
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

[Fizz/Float] Implement preloading in Fizz #24750

Closed
wants to merge 20 commits into from
Closed

Conversation

gnoff
Copy link
Collaborator

@gnoff gnoff commented Jun 17, 2022

Work in progress...

Using PR to generate builds. will follow up with a proper description when the implementation is more completed

You can now render a head anywhere in the stream and it will be inserted before the body

Resources now flush inside the head or before body content

onPreload is supported for preloads that occur before the stream has started flushing
The prior commits added support for rendering <head> anywhere in the shell. This commit adds the ability to pass a defaultHead to Fizz which will be used if no <head> is discovered when rendering the shell. To ensure we did not eagerly render the defaultHead there is a test task priorty called lazyTasks which are worked on only when there are no other outstanding tasks. This ensures that if a <head> will be discovered in the shell the lazyTask can be aborted before is renderes into the headSegment.

It is worth pointing out that the headSegment and headBoundary are using some of the mechanics of suspense boundaries but they do not want to follow suspense semantics. namely if we render the defaultHead which is kind of like a fallback we don't want to emit a placeholder template. The reason is <heads> will be treated different from other kinds of HostElements on the client where you can render 1 and a time and they hoist into head position. They are a sort of portal to the document head and so hydration semantics won't apply the same way nor will there be a need for fallback behaviors
@gnoff gnoff closed this Aug 16, 2022
@gnoff gnoff deleted the float branch October 26, 2022 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants