-
-
Notifications
You must be signed in to change notification settings - Fork 202
Fix Grid Row Cell Pooling Move Operations (Regression) #9002
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't workingperformancePerformance improvements and optimizationsPerformance improvements and optimizationsregression
Description
We are observing a regression in Neo.grid.Row where horizontal scrolling triggers massive moveNode operations for pooled cells.
Symptoms:
- The VDOM engine reports hundreds of
moveNodedeltas during horizontal scrolling. - This defeats the purpose of cell pooling (O(1) stability).
Root Cause:
Recent fixes for Cell Selection Models likely reintroduced dependency on visual order for DOM ID generation or structure, causing the VDOM diff engine to see "reordered" nodes instead of stable, attribute-updated nodes.
Proposed Solution:
- Strict Separation: Ensure DOM IDs for pooled cells are strictly index-based (
...__cell-0,...__cell-1) and never change order in thevdom.cnarray. - Dataset Identifier: Use a
data-cell-idattribute for the logical identifier needed by Selection Models, instead of relying on the DOM ID. - Refactor Selection Model: Update
CellModelto query bydata-cell-id(or mapped logical ID) rather than DOM ID.
This prioritizes scrolling performance (Zero GC/Layout Thrashing) over Selection Model lookups.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingperformancePerformance improvements and optimizationsPerformance improvements and optimizationsregression