71 lines
2.5 KiB
Plaintext
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
|