pl: Geräteüberwachung im Browser

Beitrag lesen

Du brauchst am Webserver eine Scriptsprache, die eine Verbindung zur Datenbank herstellt. Eine entsprechende Abfrage liefert {feldname => inhalt} Hier ein Beispiel für eine solche Datenstruktur in Perl:

$array = [
  {
     datetime => '2016-12-02 00:00:00',
     leistung => '1.2kW',
     unit     => 'Heizung'
  },
  {
     datetime => '2016-12-02 01:01:01',
     leistung => '2.7kW',
     unit     => 'Heizung'
  },
  # usw.
]

Der Clou an dieser Datenstruktur ist, dass diese von gängigen Template-Engines verstanden wird und sich bestens zur Darstellung tabellarischer Inhalte eignet. Nun, zur Übertragung in der AJAX-Response wir dieses Array serialisiert, und als Message-Body gesendet, z.B.:

$response = $json->encode($array);

In der Callbackfunktion, also da wo die Ajax-Response ankommt, wird obenstehendes Array wiederhergestellt, damit ein Template gerendert und anschließend ins DOM gepflanzt, z.B.:

xhr.onload = function(){
   if(this.status != 200) return alert(this.response); // Fehlerbehandlung
   var array = JSON.parse( this.response );
   var table = Mustache.render(template, {slice: array});
   $('#out').html( table ); // ab ins DOM
};

Das Template hat die Feldnamen als Platzhalter, {{datetime}}, {{leistung}}, {{unit}}, also dieselben Namen / Aliase welche auch die Abfrage liefert. Also guckst Du Mustache auf Git. /pl