-
-
Notifications
You must be signed in to change notification settings - Fork 202
perf: Propagate silent flag to Component Column renderer to suppress scrolling updates #8990
Copy link
Copy link
Closed
Labels
aicoreCore framework functionalityCore framework functionalityperformancePerformance improvements and optimizationsPerformance improvements and optimizations
Description
Context
The grid scrolling performance has degraded after the Neo.grid.Row refactor. Analysis points to a message flood caused by Component Columns.
When grid.Body scrolls, it updates rows silently (createViewData(silent=true)). However, Neo.grid.Row fails to propagate this silent flag to cellRenderer.
Consequently, grid.column.Component calls component.set() without the silent flag, triggering an individual VDOM update for every component cell in every row on every scroll frame (e.g., 50 rows = 50 extra updates/frame).
Objective
Suppress individual component updates during the scrolling loop by propagating the silent flag.
Changes
- src/grid/Row.mjs:
- Update
createVdomto passsilenttoapplyRendererOutput. - Update
applyRendererOutputto acceptsilentand include it in the rendererdataobject.
- Update
- src/grid/column/Component.mjs:
- Update
cellRendererto acceptsilentfromdata. - Use
component.set(config, silent)to leveragecomponent.Abstract's silent update capability.
- Update
Expected Result
Significant reduction in VDOM traffic during scrolling for grids with component columns, restoring performance.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
aicoreCore framework functionalityCore framework functionalityperformancePerformance improvements and optimizationsPerformance improvements and optimizations