FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: ThorstenH am 10 Februar 2013, 15:04:29

Titel: Asynchrone Aktualisierung der Weboberfläche per Javascript
Beitrag von: ThorstenH am 10 Februar 2013, 15:04:29
Ich wünsche mir, dass die Weboberfläche von fhem nicht jedes mal neu geladen wird, nachdem ich einen Button oder Link betätigt habe.

Idealerweise würde z.B. das "Einschalten" eines Homematic Zwischensteckers per Mausklick dazu führen, dass ohne ein Reload der Seite der Zustand erst nach "wird eingeschaltet" (oder was auch immer) wechselt und nach Bestätigung des Zwischensteckers, dass tatsächlich eingeschaltet wurde, nach "eingeschaltet".

Das würde auch "longpoll" als Workaround wegfallen lassen. Ich würde schon gerne wissen, ob die Haustüre durch meinen Klick wirklich abgeschlossen wurde, ohne nach 2-3 Sekunden die Seite manuell neu zu laden.
Titel: Aw: Asynchrone Aktualisierung der Weboberfläche per Javascript
Beitrag von: Johannes am 12 Februar 2013, 23:25:06
Wäre mit dem extjs framework, welches hier Link (http://forum.fhem.de/index.php?topic=10439.0) bereits zum einsatz kommt, problemlos möglich... Könnte die Usability der GUI auf jeden Fall deutlich aufwerten.
Titel: Aw: Asynchrone Aktualisierung der Weboberfläche per Javascript
Beitrag von: Tobias am 13 Februar 2013, 15:34:02
IMHO macht ja longpoll genau DAS. Funktioniert bei mit einwandfrei... Das Frontend aktualisiert sich automatisch ohne das ich eingreifen (reload) machen muss
Titel: Aw: Asynchrone Aktualisierung der Weboberfläche per Javascript
Beitrag von: justme1968 am 13 Februar 2013, 16:36:52
ich bin mir nicht sicher ob longpoll zumindest in der derzeitigen implementierung ohne nebeneffekte ist. wenn ich z.b. mehrere räme und devices in einzelnen tabs aufmache ist es mir bis her mehrfach passiert das der komplette browser hängt und keinerlei verbindung mehr zu fhem auf macht. erst ein neustart des browser hilft. auch die 5sec reconnect meldungen mit ein paar gedenk 10tel sekunden sind nicht ganz optimal.

abängig von der safari version klappt das mit dem unterdrückten refresh auch nur beim klick auf das icon. beim klick auf ein text kommando passiert der refresh unabhängig von longpoll.

gruss
  andre
Titel: Aw: Asynchrone Aktualisierung der Weboberfläche per Javascript
Beitrag von: ThorstenH am 13 Februar 2013, 17:25:53
Zitat von: Tobias schrieb am Mi, 13 Februar 2013 15:34IMHO macht ja longpoll genau DAS. Funktioniert bei mit einwandfrei... Das Frontend aktualisiert sich automatisch ohne das ich eingreifen (reload) machen muss

Es geht um asynchrone Aktualisierung, d.h. weder du *noch* der Browser macht dabei ein reload. Es wird gezielt nur ein Teil der Seite aktualisiert, und zwar sobald es notwendig ist und nicht "nach Ablauf von gefühlten x zehntel Gedenksekunden".
Titel: Aw: Asynchrone Aktualisierung der Weboberfläche per Javascript
Beitrag von: Johannes am 14 Februar 2013, 20:35:09
So ist es. Allerdings bringt das alles nichts, wenn FHEM keine Callback Funktion, bzw Rückmeldung für alle Setter bietet. Kann sein dass ich mich täusche, aber derzeit bleibt einem garnichts anderes übrig als nach einem "set" ständig ein "get" zu machen um zu schauen, ob die Änderung erfolgreich war.
Titel: Aw: Asynchrone Aktualisierung der Weboberfläche per Javascript
Beitrag von: ThorstenH am 17 Februar 2013, 12:11:47
Selbst dieses "ständige get" könnte man asynchron gestalten, damit zumindest nicht die ganze Seite neu geladen wird und "verspringt". Man könnte auch im Hintergrund asynchron pollen und dann gezielt einzelne Anzeigen des HTML Dokuments aktualisieren. Ohne Reload der Seite.