Notebook scrolling perf improvement #133571
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When scrolling a notebook, the notebook list view is creating cells, relayouting them and deleting them in a short period of time. Though we are using the same list view as the file explorer or settings editor, rendering a single notebook cell is much more costly. One typical improvement we can do is postponing rendering of costly component but it might harm the perceived experience (e.g. more flickering).
This PR tries to improvement the smoothness of scrolling by:
offsetHeight/clientHeight
of output elements after all cells are initially rendered, to ensure that the layout is invalidated only oncetransfom: translateY
for updatingtop
properties for focus indicator.