Auf einer Seite, welche ausschliesslich nur Plots enthält, werden keine Daten angefordert, da (scheinbar) io.run nicht aufgerufen wird, wenn sich (sonst) keine Widgets auf der Seite befinden. Es ist auch unwichtig was für ein Widget und welches Item es bedient, es muss nur eins mit auf der Seite sein, damit io.run aufgerufen wird.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Seite mit nur Plots erhält keine Daten
Einklappen
X
-
Hallo Wolfram,
meine Debugs haben ergeben, dass nur io.init aufgerufen wird. io.run wird doch nicht durch den Treiber, sondern beim Aufrufen/Wechseln einer Seite von smartVISU aufgerufen oder? Und das passiert nicht.
Oder bekommt bei dir, mit anderem Treiber, und einer Seite mit nur einem Plot, dieser Daten?
Gruß
PatrikZuletzt geändert von PatrikG; 05.02.2023, 16:53.
Kommentar
-
Hallo Patrik,
io.run wird immer beim Event pagecontainerbeforeshow aufgerufen. Der Eventhandler dafür wird in der root.html definiert. Unmittelbar vorher werden fx.init() und repeater.init() im selben Eventhandler aufgerufen. Die Visu müsste dabei schon auf einen gravierenden Fehler laufen, damit io.run nicht ausgeführt wird.
Ich habe gerade eine Testseite mit einem Plot ohne weitere Widgets erstellt. Die wird mit dem Offline-Treiber korrekt angezeigt.
Gruß
Wolfram
Kommentar
-
Hallo Wolfram,
du hast natürlich recht, ich hatte das falsche Consollog offen, da wurde der Debugeintrag von io.run nicht angezeigt. Asche auf mein Haupt, bin schon zulange raus.
Da io.run doch ausgeführt wird, hast du auch weiter recht, dass es an widget.listeners() liegt. Ich war bisher der Meinung, dass darin alle auf der Seite verwendeten Items stehen. Ok, wieder was dazu gelernt. Aber bevor ich das jetzt anpasse, trotzdem die Frage: Sollte es nicht doch so sein, dass in widget.listeners() alle auf der Seite verwendeten Items stehen, egal in welchen Widget diese verwendet werden?
Gruß
Patrik
Kommentar
-
Hallo Patrik,
die Bezeichnung widget.listeners() ist wahrscheinlich historisch gewachsen und nicht ganz präzise. Inhaltlich brauchen wir aber die Trennung zwischen Items, Serien, Logdaten und URLs, da sie unterschiedlich angefordert und ausgewertet werden. Deswegen gibt es weitere Funktionen widget.plot, widget.log und widget.urls zum Auflisten der jeweiligen listener.
Kommentar zur widget.listeners in der base.js:
Code:/** * Returns all unique items from all widgets except plots, logs and url data sources. * * @return array unique list of the items */
Gruß
Wolfram
Kommentar
Kommentar