Initialer Import des AssetManagers
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user