FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: bismosa am 10 Juni 2023, 11:24:43

Titel: [FTUI 3] [Tipp] Optimierung der Ladezeit - Charts nur laden, wenn auch angezeigt
Beitrag von: bismosa am 10 Juni 2023, 11:24:43
Hallo!

Da ich mittlerweile meinem Problem des langsamen Ladens und auch der ständigen Auslastung von FHEM auf die Spur gekommen bin...hier mein Lösungsvorschlag.
Ich habe sehr viele Diagramme auf meiner FTUI Oberfläche (alleine für jeden Temperaturfühler von jedem Gerät = 42 Stück).
Mir ist aufgefallen, dass beim Laden der Seite und auch bei der Aktualisierung eines Wertes (wenn in [update] gesetzt) alle Chart Daten von FHEM angefordert werden.

Ich habe nun eine Änderung an der chart.component.js und chart-data.component.js vorgenommen. Dadurch werden die Chart-Daten nur geladen, wenn das Chart auch angezeigt wird.

components/chart/chart-data.component.js
fetch() {
    const pop_parent = this.closest('ftui-popup');
    if (pop_parent){
      if (!(ftuiHelper.isVisible(pop_parent))){
        return;
      }
    } else {
      if (!(ftuiHelper.isVisible(this))) {
        return;
      }
    }
    if (!this.isLoading) {
      this.fetchLogItems(this.log, this.file, this.spec);
    }

www/ftui/components/chart/chart.component.js
import { dateFormat, getStylePropertyValue, isVisible } from '../../modules/ftui/ftui.helper.js';
...
...
refresh() {
    const pop_parent = this.closest('ftui-popup');
    if (pop_parent){
      if (!(isVisible(pop_parent))){
        return;
      }
    } else {
      if (!(isVisible(this))) {
        return;
      }
    }
    this.updateControls();
...

Bei mir verkürzt sich die Ladezeit signifikant. Von ca. 1,8Min auf 30sek. (!)
Auch reagiert mein FHEM nun viel besser, da nicht ständig ein Haufen Daten transferiert werden müssen.

Ich habe auch einen Pull-Request erstellt. Ich hoffe, das es so richtig ist und auch übernommen werden kann  :)

Gruß
Bismosa

(Thread, Titel und Inhalt geändert, da bereits überholt und keine Antwort vorhanden)

Gruß
Bismosa
Titel: Aw: [FTUI 3] Aktualisierung sehr langsam - Charts?
Beitrag von: bismosa am 10 Juni 2023, 20:03:26
[Inhalt entfernt, da mittlerweile überholt]
Titel: Aw: [FTUI 3] Aktualisierung sehr langsam - Charts?
Beitrag von: bismosa am 10 Juni 2023, 22:22:53
[Inhalt entfernt, da mittlerweile überholt]
Titel: Aw: [FTUI 3] [Tipp] Optimierung der Ladezeit - Charts nur laden, wenn auch angezeigt
Beitrag von: Det20 am 22 Juni 2023, 17:06:45
Danke!
Titel: Aw: [FTUI 3] [Tipp] Optimierung der Ladezeit - Charts nur laden, wenn auch angezeigt
Beitrag von: Dracolein am 28 Juni 2023, 13:23:00
Wo werden die Änderungen in genannten Dateien eingefügt, um keinen Fehler zu machen?
Titel: Aw: [FTUI 3] [Tipp] Optimierung der Ladezeit - Charts nur laden, wenn auch angezeigt
Beitrag von: bismosa am 29 Juni 2023, 13:57:13
Hallo!

Schau mal hier:
https://github.com/bismosa/ftui/blob/master/www/ftui/components/chart/chart-data.component.js
und hier:
https://github.com/bismosa/ftui/blob/master/www/ftui/components/chart/chart.component.js

Dort sind die Änderungen von mir enthalten.

Gruß
Bismosa
Titel: Aw: [FTUI 3] [Tipp] Optimierung der Ladezeit - Charts nur laden, wenn auch angezeigt
Beitrag von: Dracolein am 14 Juli 2023, 08:38:37
Hey Leute, wäre das nicht fein, wenn diese Änderung - wenigstens als optionaler Parameter o.ä. - in das FTUI3 generell einfliessen könnte? Dann bräuchten wir nicht nach jedem Update diese Änderung neu einpflegen.
Titel: Aw: [FTUI 3] [Tipp] Optimierung der Ladezeit - Charts nur laden, wenn auch angezeigt
Beitrag von: yersinia am 14 Juli 2023, 08:59:03
setstate müsste bismosas pr (https://github.com/knowthelist/ftui/pull/51) nur mal übernehmen, dann käme dies automatisch mit dem nächsten update.