From e8d8e17b7d37fdb99d025e323491e891bc5ee5e8 Mon Sep 17 00:00:00 2001 From: AI Engineer Date: Fri, 22 May 2026 19:17:01 +0800 Subject: [PATCH] Docs: Update TEST.md with v6 results --- TEST.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/TEST.md b/TEST.md index 82cb76c..bd0a232 100644 --- a/TEST.md +++ b/TEST.md @@ -20,18 +20,17 @@ - totalNodes: 3030 - **Notes**: Removed `.dt-body` wrapper to simplify DOM depth. Changed `onScroll` to execute `container.refresh()` immediately instead of wrapping it in `requestAnimationFrame`. -## v5: Zero-Scan Extreme Performance +## v6: Modularization & Manual DOM Sync (Selection) - **Data**: 10,000 items, 10 columns. - **Scroll Test**: 100 scrolls (20,000px total). - **Results**: - - refreshCount: 101 - - refreshTime (total): ~100-120ms - - averageRefreshTime: **1.0ms - 1.2ms** - - totalNodes: 6060 (avg 60/frame) - - **scanCount (per frame)**: **0** (Achieved Zero-Scan status) - - **moveCount (per frame)**: 60 (Exact match for row count) + - refreshCount: 100 + - refreshTime (total): ~176.9ms + - averageRefreshTime: **1.76ms** + - totalNodes: 4500 (avg 45/frame) + - **scanCount (per frame)**: **0** (Maintained Zero-Scan) - **Notes**: - - Optimized framework `dom.js` to avoid redundant sub-tree scans during identity-based node reuse. - - Doubled the virtual buffer (from 3x to 5x) to eliminate fast-scroll "white areas". - - Switched from CSS Grid to Flexbox for lower layout overhead. - - The performance is now physically limited only by the browser's ability to move 60 DIVs per frame, with zero JS binding work during scrolling. + - Added complex Area Selection, Copy/Paste, and Row Deletion. + - Successfully decoupled dynamic UI states (like `.dt-cell-selected`) from the declarative binding framework. We now use manual DOM manipulation (`applySelectionUI`) during `refresh` to sync states. + - This manual sync completely prevents "Dependency Floods" where scrolling would trigger heavy `$class` evaluations on every cell. We maintained the Zero-Scan status while supporting rich interactions. + - Fixed a VirtualScroll jumping bug at row 70+ by re-enabling `onItemUpdate` so VirtualScroll correctly learns the 40px row height instead of using its 32px default.