# AssetManager v0.3.15.0 ## Performance-Refactoring der Assetliste Die Diagnose aus v0.3.14.8 zeigte zwei konkrete Ursachen: - `innerText` in den Tabellenwerkzeugen erzwang Layoutberechnungen. - `table.scrollWidth` löste bei der breiten Assettabelle einen teuren Reflow aus. Diese Bereiche wurden grundlegend überarbeitet. ### Tabellenlayout - Die Assettabelle verwendet jetzt `table-layout: fixed`. - Jede Datenspalte erhält eine feste Breite. - Ohne konfigurierte Listenbreite gelten sinnvolle Standardbreiten: - Bezeichnung: 220 px - andere Datenfelder: 180 px - Lange Inhalte vergrößern die Tabelle nicht mehr, sondern werden abgeschnitten und mit Auslassungspunkten dargestellt. ### Spaltenverwaltung - Ausgeblendete Spalten werden über eine einzige dynamische CSS-Regel gesteuert. - Es werden nicht mehr tausende einzelne Tabellenzellen per JavaScript verändert. - Die Tabellenbreite wird aus den bekannten Spaltenbreiten berechnet. - `table.scrollWidth` wird nicht mehr verwendet. - `ResizeObserver` und `MutationObserver` der Spaltenverwaltung wurden entfernt. - Die obere Scrollleiste wird nur noch initial, nach einer Spaltenänderung und bei einer echten Änderung der Fenstergröße aktualisiert. ### Filter und Sortierung - `innerText` wurde durch `textContent` ersetzt, damit Filter und Sortierung keine erzwungene Layoutberechnung auslösen. - Filterwerte werden einmalig zwischengespeichert. - Ein Filterdurchlauf durchsucht den vorbereiteten Cache statt jedes Mal alle Zellen erneut über DOM-Abfragen zu lesen. - Der DOM-Status einer Zeile wird nur geändert, wenn sich ihre Sichtbarkeit tatsächlich ändert. - Sortierte Zeilen werden gesammelt über ein `DocumentFragment` eingesetzt. ### Spaltenreihenfolge - Gespeicherte Spaltenreihenfolgen werden zeilenweise gesammelt angewendet. - Dadurch entstehen deutlich weniger einzelne DOM-Operationen. ### Diagnosecode - Die ausführliche Performance-Diagnose aus v0.3.14.8 wurde wieder entfernt. - Der koordinierte, flackerfreie Seitenaufbau bleibt erhalten. ## Hinweis Virtuelles Rendering wurde bewusst noch nicht aktiviert, da es Auswahl, Sortierung, Filter, Duplikatsuche und den dynamischen Inhaltsreload tiefgreifend verändern würde. Die jetzt umgesetzten Optimierungen beseitigen zunächst die nachgewiesenen Reflow-Ursachen ohne Funktionsverlust. ## Update-Schutz Nicht enthalten bzw. nicht überschrieben: - .env - APPINFO.json - data/config/config.json - PostgreSQL-Daten - Uploads - Backups - Logs