[Performance] Kalender-Voll-Rerender bei jeder Interaktion #10

Closed
opened 2026-06-03 14:10:02 +02:00 by ferdi2go · 1 comment
Owner

Schweregrad: LOW–MEDIUM

Dateien: js/calendar.js:147-301

Problem: Jede Änderung (Slot, Feiertag, Monat) baut das komplette Grid inkl. aller Listener neu auf.

Fix: Gezielte Updates der betroffenen Zelle; Event-Delegation statt eines Listeners pro <select>.

**Schweregrad:** LOW–MEDIUM **Dateien:** `js/calendar.js:147-301` **Problem:** Jede Änderung (Slot, Feiertag, Monat) baut das komplette Grid inkl. aller Listener neu auf. **Fix:** Gezielte Updates der betroffenen Zelle; Event-Delegation statt eines Listeners pro `<select>`.
ferdi2go added the severity/lowperformance labels 2026-06-03 14:10:02 +02:00
Author
Owner

Behoben in 8cd8908: Tag-Zellen-Aufbau in makeDayCell(d) extrahiert. Slot-Änderungen und Feiertag/Betriebsurlaub-Toggles rendern jetzt nur die betroffene Zelle neu (cell.replaceWith) statt des gesamten Grids inkl. aller Listener. Strukturänderungen (Monat/Jahr/Slot-Anzahl) bleiben Voll-Render. Verhaltensgleiche Extraktion; headless ohne JS-Fehler geladen, Tests grün. Interaktive Render-Tests folgen in #13.

Behoben in `8cd8908`: Tag-Zellen-Aufbau in `makeDayCell(d)` extrahiert. Slot-Änderungen und Feiertag/Betriebsurlaub-Toggles rendern jetzt **nur die betroffene Zelle** neu (`cell.replaceWith`) statt des gesamten Grids inkl. aller Listener. Strukturänderungen (Monat/Jahr/Slot-Anzahl) bleiben Voll-Render. Verhaltensgleiche Extraktion; headless ohne JS-Fehler geladen, Tests grün. Interaktive Render-Tests folgen in #13.
Sign in to join this conversation.