javascript / expert
Snippet
Speichereffiziente Metadaten mit WeakMap
WeakMap ermöglicht die Verknüpfung privater Metadaten mit DOM-Knoten, ohne die Garbage Collection zu verhindern. Im Gegensatz zu einer Standard-Map werden die Metadaten automatisch bereinigt, wenn der DOM-Knoten entfernt wird und keine anderen Referenzen existieren, was für die Vermeidung von Lecks in dynamischen UIs entscheidend ist.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const nodeMetadata = new WeakMap();export function enhancedAction(node, params) {nodeMetadata.set(node, {initialWidth: node.offsetWidth,observer: new ResizeObserver(() => handle(node))});return {destroy() {nodeMetadata.get(node).observer.disconnect();nodeMetadata.delete(node);}};}
svelte
Erklärung
1
const nodeMetadata = new WeakMap();
Erstellt eine Weak-Reference-Sammlung, in der Keys (DOM-Knoten) von der Garbage Collection erfasst werden können.
2
nodeMetadata.set(node, { ... });
Speichert komplexe Objekte, die mit dem Knoten verknüpft sind, ohne das Knoten-Objekt selbst direkt zu verändern.