Quantcast
Channel: Squeezebox : Community : Forums
Viewing all articles
Browse latest Browse all 10706

basic.html: Wie kann ich den Seiteninhalt möglich 'angenehm' aktualisieren.

$
0
0
>>> Erstelle einen zweiten Pagehandler, welcher nur die Tabelle mit den
>> Geräten erstellt.

>
> Ich nehme mal an den Handler registriere ich so wie hier:
> https://github.com/Logitech/slimserv...Plugin.pm#L312


Genau. Und
https://github.com/Logitech/slimserv...Plugin.pm#L931
ist dann auch in etwa der einfachste Pagehandler, den ich finden konnte:
der wird aufgerufen, wenn du deine Custom-URL aufrufst. Dann füllst du
deine Liste von Geräten in z.B. $params->{hue_list}, und rufst
filltemplatefile() mit deiner Vorlage auf.

>>> Kein HTML, ausser der Tabelle mit den Geräten.

>
>
> Das ist dann eine stinknormale .html ähnlich dieser:
> https://github.com/Logitech/slimserv...gic_moods.html
> Soll heißen: Ich darf da TT Dtatements einbauen.


Ja, ausser, dass du die ganzen pageheader/footer/title Dinge weglässt,
da das HTML-Fragment ja irgendwo auf einer bestehenden Seite eingebaut
werden soll.

> mherger wrote:
>>> Im Haupt-Dokument erstellst du ein DIV mit ID, welches du dann später

>> mit
>> Ext.Element.load()
>> (http://docs.sencha.com/extjs/3.4.0/#...nt-method-load) mit
>>
>> dem Resultat des zweiten Pagehandlers füllst.

>
> Das ist für mich zweifellos der härtere Teil (wegen dem JS...). Hast Du
> dafür vielleicht ein Beispiel?


Gar nicht so schwierig :-). Im JS Snippet rufst du ja jetzt regelmässig
SqueezeJS.Controller.request(...) auf. Nun fügst du da zusätzlich noch
folgende Zeile ein:

Ext.get('hue_list').load('pfad/zu/deinem/pagehandler.html');

Und unten im Dokument an Stelle der jetzt definierten Tabelle ein

<div id='hue_list'></div>

Dann wird dort alle zwei Sekunden die Liste der Geräte vom Server geholt
und das resultieren HTML da eingesetzt. Ev. entfällt dann auch die CLI
Abfrage, um die Knöpfe zu deaktivieren, da du das ja im HTML schon
erledigen könntest, das regelmässig aktualisiert wird.

Oder du optimierst das weiter: du belässt die Abfrage drin,
aktualisierst die Liste aber nur, wenn sich im Resultat der Abfrage
etwas geändert hat. Damit entfiele dann das Flackern, wenn sich nichts
ändert.

--

Michael

Viewing all articles
Browse latest Browse all 10706

Trending Articles