Ankündigung

Einklappen
Keine Ankündigung bisher.

Diagramme werden permanent aktualisiert

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Diagramme werden permanent aktualisiert

    Hallo Zusammen,

    kurze Frage: Meine Diagramme werden alle (sobald man sie mindestens einmal geöffnet hat) permanent aktualisiert. Also es werden die Daten für alle RRD Werte vom Backend abgefragt, egal ob das Diagram sichtbar ist oder nicht. Bug oder Feature?

    Nutze die aktuelle develop Git Version mit openHAB Backend.

    Danke,
    Florian

    #2
    Da die RRD-Abfrage ziemlich schnell ist, sehe ich eine regelmäßgie Abfrage eines nicht sichtbaren Diagramms als eigentlich nicht notwendig an.

    Vermutlich ist's aber noch niemanden aufgefallen, da es eher ein kosmetisches Problem ist(?)...

    => Darfst Du gerne Fixen (oder notfalls zumindest ein Issue aufmachen)
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Hallo Chris,

      ich habe gerade festgestellt, dass das Problem schlimmer ist als gedacht. Sobald man bei einem Diagram das Popup öffnet und schließt, wird der Timer nicht beendet. Ein erneutes Öffnen + Schließen erzeugt dann noch einen Timer usw. Alle Timer pollen periodisch die RRDs. Keine Ahnung ob das ganze irgendwann auf ein Limit trifft, im Sinne der Stabilität und Performance kann das aber nicht gut sein.

      Fixen gerne, ich bin jedoch eher in der C++ Welt zu hause und arbeite mich erst in JS ein. Gibt es ein Beispiel an dem ich mich orientieren kann wie man mitbekommt sobald ein Widget ausgeblendet / zerstört wird? Irgend eine Art von Callback?

      Danke,
      Florian

      Kommentar


        #4
        Danke!

        JavaScript ist - seit es FireBug (im Firefox) oder die Entwickler-Konsole (sonst) - gibt, eigentlich leichter zu debuggen als C++

        Ich hab den Code noch nicht ausprobiert - aber ein reiner Review lässt mich vermuten, dass Du oben die Referenz zum plot nur noch lokal hältst, unten diese aber doch verwenden willst.
        => Kann das sein, oder bin ich beim Lesen in der Spalte verrutscht?

        (Da das meiste der CometVisu noch zu Zeiten vor "use strict;" geschrieben wurde, fallen solche Probleme nur durch intensives Nachschauen auf und nicht per schöner Fehlermeldung...)
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          Debuggen ist dabei noch mein kleinstes Problem Die Konzepte von CV und Javascript im allgemeinen sind halt alle noch Neuland für mich. Sorry wenn sich der eine oder andere Anfängerfehler in den Code einschleichen wird. Learning by doing

          Habe gerade deinen Review kommentiert, ja, die Referenz kann ich leider nicht mehr in data ablegen, da diese Struktur zwischen den beiden Diagram Typen geshared ist. Ich übergebe plot als Funktionsargument, falls man aus RefCount gründen eine Referenz irgendwo vorhalten muß, dann müsste ich eine Diagram spezifische data Struktur anlegen und die dann als Funktionsargument übergeben.

          "use strict"; kannte ich noch gar nicht, wieder etwas gelernt. Habe das testweise gerade mal in das Plugin eingebaut, funktioniert alles tadellos

          Kommentar


            #6
            Ja, JavaScript ist tricky - macht unschuldig auf eine interpretierte Sprache die wie C/C++/Java aussieht. Und ist dann teilweise deutlich anders. Hoisting und der seltsame Vererbungsmechanismus fallen spontan auf (wird beides mit der neuesten JS-Version bei Bedarf besser). Aber wie genial "functions are first class objects" ist, lernt man erst später schätzen
            Egal, Learning by Doing ist genau der richtige Ansatz. (Und wenn man sich bisschen eingelebt hat, ist Effective JavaScript genau so interessant wie auch schon Effective C++ & co das spannendste C++ Buch (bzw. inzwischen Bücher...) ist, das ich kenne)

            Zurück zum Thema:
            Danke für den Commit, hab ihn gerade gemerged.
            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

            Kommentar


              #7
              Vielen Dank, hast du noch einen Tipp wie ich erkenne wenn das Popup geschlossen wird?

              Ich habe mir die anderen Plugins ein bisschen näher angeguckt. Das timeout Plugin scheint einen scrolltopage Hook zu installieren, damit könnte ich zumindest erkennen wenn die aktuelle Page verlassen wird und dann den Timer deaktivieren. Ist das der vorgesehene Weg? Für das Popup hilft das vermutlich nicht, bin also für jeden Tipp dankbar!

              Kommentar


                #8
                Ja, warten bis Pull-Request #176 gemerged wird. Dort habe ich das Popup-Handling so umgebaut, dass ein "close" Event beim Schließen benutzt wird. An den kannst Du Dich ranhängen (vgl. neue Zeile 156 im Plugin)
                TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                Kommentar


                  #9
                  Ist gemerged!
                  Gruß
                  Tobias

                  Kommentar

                  Lädt...
                  X