Autor Thema: Clock Widget: Client-Zeit statt Server-Zeit und "späte" Aktualisierung  (Gelesen 390 mal)

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6030
  • Finger weg von der fhem.cfg
Hi,
ich bin mal wieder nicht in meiner "normalen" Zeitzone und bastle mit FTUI/FUIP herum. Dabei sind mir beim Clock-Widget zwei Sachen aufgefallen:

Anzeige der Client-Zeit statt der Server-Zeit
Direkt nach einem Seiten-Reload wird erst einmal die Client-Zeit angezeigt. Das liegt wohl daran, dass die Ermittlung des Zeitunterschieds asynchron passiert und damit letztendlich nach dem ersten Rendering. Ich habe das bei mir so korrigiert:
            ftui.sendFhemCommand('{localtime}')
                .done(function (fhemResult) {
                    var now = new Date();
                    var ft = new Date(fhemResult);
                    elem.data('serverDiff', now.getTime() - ft.getTime());
// PFE: init_ui was already processed here, so update again
updateText(elem);
                });
Neu ist die Zeile mit dem "updateText".
Mit dieser Änderung sieht man zwar noch ganz kurz die falsche Zeit aufflackern, aber das ist meiner Meinung nach akzeptabel.

"späte" Aktualisierung
Wenn das Telefon eine Weile "schläft", dann wird nach dem Einschalten erst einmal für eine Weile (bis zu einer Minute) eine alte Zeit angezeigt. Anscheinend werden Änderungen am DOM ignoriert, wenn die Seite unsichtbar ist oder der Timer "schläft" dann auch. (Das sind nur Vermutungen...)
Ich habe das bei mir so gelöst:
// PFE: immediately update time when page comes back visible
$(document).on('visibilitychange', function () {
            if (document.visibilityState === 'hidden')
                // page is hidden
return;
            // page is visible
updateText(elem);
        });
Das ganze hängt am Ende von init_attr.

Vielleicht könnte jemand das "offiziell" einbauen.

Gruß,
   Thorsten

RasPi
Heizkessel-Steuerung per Arduino und HTTPMOD
und einen Haufen Homematic (Wired)

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6030
  • Finger weg von der fhem.cfg
Hi,
ich habe das jetzt für FUIP gelöst, indem ich eine eigene Version des clock-Widgets benutze. Wenn jemand trotzdem die Korrektur einbauen will, dann bitte Bescheid geben, damit ich meine Umgehungslösung wieder entfernen kann.
Gruß,
   Thorsten
RasPi
Heizkessel-Steuerung per Arduino und HTTPMOD
und einen Haufen Homematic (Wired)