Skip to content

Optimize Grid Row Pooling to eliminate moveNode deltas #9012

@tobiu

Description

@tobiu

Currently, Neo.grid.Body recycles rows by reordering them in the vdom.cn array to match the logical record order. This triggers extensive moveNode DOM operations during scrolling, which is performance-heavy.

The Goal: Implement a Fixed-DOM-Order strategy for Rows, similar to the Cell pooling strategy.

  1. Keep Row component references in a stable order in Body.vdom.cn.
  2. Use CSS transforms (already in place) to position rows visually.
  3. When scrolling, simply update the transform and content of the row that "wraps around", without changing its index in the vdom.cn array.

This will reduce scroll deltas to pure attribute updates (transform + content), eliminating layout thrashing caused by node movement.

Metadata

Metadata

Assignees

Labels

coreCore framework functionalityperformancePerformance improvements and optimizations

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions