Hallo, gibt es irgendwo ein Beispiel wie man Ajax in einem µC-Webserver verwendet? Wie die Browseranfragen und Webserver-Antwoerten aussehen? Hat damit jemand schon mal was gemacht? Gruß Florian
Hallo, ja - habe ich schon gemacht mit dem Webserver von Ulrich Radig. Im Prinzip ist es ja nichts anderes, als die erforderlichen JavaScript Routinen in der webpage.h unterzubringen. Diese rufen dann einfach eine zweite Webpage auf, die eben ständig aktualisiert angezeigt wird. Funktioniert bei mir seit ca. einem Jahr völlig problemlos. Außerdem meine ich, dass das Thema in der letzten Ausgabe der embedded-Online Zeitschrift, die freundlicherweise auf dieser Seite angeboten wird, behandelt wurde. Viel Erfolg. Steffen
Hallo Steffen, das passt ja gut. Im Journal steht ja alles drin! Vielen Dank für den Tipp. Gruß Florian
AJAX basiert ja auf JavaScript. JavaScript ist eine Clientseitige Script-Sprache. D.h. du musst einfach dafür sorgen das ein entsprechendes JavaScript exisitiert und in die entsprechende Seite eingebunden ist. Alles andere macht dann der Browser des Client PCs. Alles andere, ist in dem Fall eine neue Anfrage an den µC zu senden.
Ajax bedeutet man laedt dem Browser die Arbeit auf. Der Server muss einfach eine Vielzahl von kleinen und kleinsten Files auf Anfrage liefern. Soweit ich mich erinnere sind das .JSON files, die mit Text gefuellt sind, oft nur eine einzige Zeile oder zwei. In diesen .JSON files wird der Inhalt dynamisch veraendert. Das bedeutet man benoetigt ein sehr effizientes Filesystem, resp etwas, was dem Server ein schnelles Filesystem vorspiegelt. Die Files, resp der Inhalt wird ja mit einem Prozess fortlaufend erzeugt.
Hopp Triceratops schrieb: > Ajax bedeutet man laedt dem Browser die Arbeit auf. Der Server muss > einfach eine Vielzahl von kleinen und kleinsten Files auf Anfrage > liefern. Hmmm? Du kannst dich selbst nicht entscheiden ;-) Hat der Server jetzt die Arbeit oder der Client? :-P Ajax ist dafür da um üblicherweise dynamischen Inhalt einer Seite zu laden, anstatt die Seite komplett neuladen zu müssen. Ich würde sagen dabei nimmt man sowohl dem Client als auch dem Server Arbeit ab... > Soweit ich mich erinnere sind das .JSON files, die mit Text > gefuellt sind, oft nur eine einzige Zeile oder zwei. Was man per Ajax abholt ist völlig irrelevant. Es kann auch xml sein. > In diesen .JSON files wird der Inhalt dynamisch veraendert. Die Dateien, die man per Ajax holt können vom Server dynamisch erzeugt werden, ja. > Das bedeutet > man benoetigt ein sehr effizientes Filesystem, resp etwas, was dem > Server ein schnelles Filesystem vorspiegelt. Die Files, resp der Inhalt > wird ja mit einem Prozess fortlaufend erzeugt. Das versteh ich jetzt gar nicht mehr. Wenn der Server die per Ajax angeforderten Daten On-The-Fly erzeugt, ist nicht mal ein Filesystem beteiligt...
Ja. Stimmt. Die Dateien koennen auch XML sein. Die Ajax Dateien sind natuerlich dynamisch, sonst macht das Ganze keinen Sinn. Der Filesystem-Prozess ist ein Zwitter. Zum Einen muss es sich die Referenzen (filenamen) zu Ajax files merken die auf der vorher ausgegebenen Seite sind, zum Anderen diese Referenzen (filename) dem die File erzeugenden Prozess zuspielen und die richtigen Daten in die Antwort einfuellen. Moeglicherweise kann man diese Files, welche die Nutzdaten enthalten einmal fuer alle Zeit fest be-namen, moeglicherweise auch nicht. Der die Anfragen bearbeitende Prozess muss aufgrund des Filenamens herausfinden was gewuenscht ist, als Tabelle, und diese Daten dann als File-foermige Antwort zuruecksenden. Nichtsdestotrotz ist es eine Anfrage an ein filesystem. Wenn eine Anfrage nicht passt, musst die Antwort sinngemaess - file not found - lauten.
Habe ich mir in den letzten Tagen auch Gedanken drüber gemacht. Ansatz sieht bisher so aus : z.B. den Radigserver alles was html ,js, gif etc ist von der SD-Karte holen lassen, alle Meßwerte als JSON formatiert direkt aus dem Speicher des MC ausgeben. Hat den Vorteil 1. die Arbeit des WEB-Designs und die des Core-Entwicklers zu trennen. 2. macht den Server schnell, da die Seite und das js nur einmal von der langsamen SD geladen werden muß. Hat jemand den RADIG-NETIO Code schonmal auf SD-Kartenausgabe umgestellt ? Grüsse Ich
Hopp Triceratops schrieb: > [...] Ich glaube du hast AJAX nicht so ganz verstanden ;) Natürlich kann bei einem AJAX-Request auch der Inhalt einer Datei zurückgegeben werden. Aber das ist nur eine Möglichkeit und hat erstmal nichts mit einem Dateisystem zu tun.
Hopp Triceratops schrieb: > Ja. Stimmt. Die Dateien koennen auch XML sein. Die Ajax Dateien sind > natuerlich dynamisch, sonst macht das Ganze keinen Sinn. Es können auch JPGs sein ;-) > Der Filesystem-Prozess ist ein Zwitter. Zum Einen muss es sich die > Referenzen (filenamen) zu Ajax files merken die auf der vorher > ausgegebenen Seite sind, zum Anderen diese Referenzen (filename) dem die > File erzeugenden Prozess zuspielen und die richtigen Daten in die > Antwort einfuellen. Kann das sein, dass du auf PC-Ajax Implementierungen festgefahren bist? Überlege dir einfach, dass es die Ajax-Implementierung bei einer bestimmten URL einfach nur Messdaten aus dem Speicher des Mikrocontrollers ausgibt. Die einzige Referenzierung die man da hat ist, dass man die URL diesen Daten zuordnet. Meinst du das mit "Filesystem-Prozess"?
>Hat jemand den RADIG-NETIO Code schonmal auf SD-Kartenausgabe umgestellt >? Soweit ich mich erinnere hat das mal jemand gemacht. Schau doch mal bei Ulrich ins Forum.
@ holger Ja, den einen kenne ich, der heisst WILL und hat was mit Heizungsautomatisierung gemacht. Hab ich, und läuft. WILL sagt aber auch, dass er keine Ahnung vom Programmieren hat. Darum frage ich noch mal. Gute Nacht von mir
Hallo, vielen Dank für die rege Beteiligung. Was mich nur interessieren würde wäre das Serverseitige Handling der Ajax-Anfragen. Welche Schlüsselworte bekommt der Server vom Browser und was erwartet der Browser zurück. Hat da jemand Codebeispiele? Gruß Florian
Wirf mal Firebird an. Das ist der Debugger von Firefox. Da kann man die Meldungen mithoeren.
Drei von Vier schrieb: > Wirf mal Firebird an. Das ist der Debugger von Firefox. Da kann man die > Meldungen mithoeren. Du meinst Firebug. Das ist aber nicht der Debugger von Firefox, sondern ein Debugger für Firefox.
Florian schrieb: > Was mich nur interessieren würde > wäre das Serverseitige Handling der Ajax-Anfragen. Welche Schlüsselworte > bekommt der Server vom Browser und was erwartet der Browser zurück. Die Anfragen sind stinknormale HTTP-GET- bzw. POST-Requests, und was zurückgeliefert werden soll, liegt in der Hand des Nutzers, bzw. des die Daten auswertenden Skriptes im Browser. Das können XML- oder JSON-Daten sein, das kann aber auch ganz simpler Text sein, ohne irgendeine Textauszeichnung oder sonstwas. Transportiert wird das ganze wie normale Webseiten als Antwort auf HTTP-GET- bzw. POST-Requests.
Alleine, dass dieses ganz einfache simple Feature (nämlich von Javascript aus HTTP-Requests starten zu können) einen eigenen fancy Namen bekommen hat (Ajax, Web 2.0) macht die Leute so verrückt, dass die dahinter ein völlig neuartiges Prinzip erwarten ;-) Dabei ist Ajax eben einfach nur eine Javascript-Bibliothek, die es erlaubt HTTP-Requests zur Seitenlaufzeit auszuführen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.