Skip to content

Commit d6faae7

Browse files
committed
docs(release-notes): Add Surgical DOM Move to Hero Story 2 (#9341)
1 parent 2ef3581 commit d6faae7

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

resources/content/release-notes/v12.0.0.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,10 @@ flowchart TD
165165
4. **Main-Thread Drag & Kinetic Scrolling:**
166166
* We introduced `Neo.main.addon.GridDragScroll`. Instead of passing high-frequency `mousemove` events back and forth between workers, drag-to-scroll logic now runs directly on the Main Thread. It features physics-based inertial scrolling with exponential decay friction, delivering a buttery-smooth, native-like touch and drag experience.
167167

168-
5. **"Living Sparklines" & Zero-Allocation Physics (Canvas Worker):**
168+
5. **Surgical DOM Move (Drag & Drop Proxy):**
169+
* Reordering columns containing complex components (like `OffscreenCanvas`) used to be impossible without destroying and recreating them, losing canvas context. We implemented a "Surgical DOM Move" in the `SortZone` proxy. When dragging a column, the App Worker dispatches a sequence of `moveNode` deltas to physically pluck the live components out of the grid cells and drop them into the dragging proxy, perfectly preserving the canvas connections and animations while you drag. They are snapped back into place on drop.
170+
171+
6. **"Living Sparklines" & Zero-Allocation Physics (Canvas Worker):**
169172
* We transferred ownership of the `<canvas>` DOM nodes inside the grid cells to a dedicated Canvas Worker using the `OffscreenCanvas` API.
170173
* To maintain a strict 16ms frame budget (60fps) without Garbage Collection (GC) stutters, the physics engine uses a **Zero-Allocation** strategy (cached geometry, pre-allocated `CanvasGradient` objects).
171174
* To prevent GPU overload, it uses a **"Sparse Animation Strategy"**. A single master loop randomly selects *one* chart to pulse with a "Data Packet" every few seconds. This creates the visual impression of a highly active, living system ("The Server Room Effect") while keeping actual GPU load equivalent to rendering just a single chart.

0 commit comments

Comments
 (0)