Files
Assetmanager/UPDATE-0.3.15.0.txt

71 lines
2.5 KiB
Plaintext

# 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