Werte verarbeiten und laufend aktualisieren (AJAX)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich hoffe das es ein ähnliches Thema nicht schon gibt, sollte es so sein, bitte entschuldigt das, dann habe ich es übersehen. In dem Fall würde ich mich über Links oder hilfreiche Kommentare freuen.

    Zum Problem:

    Ich lese mit dem Raspi über einen A/D-Wandler Werte von einem 10Gang-Poti ein. Funktioniert problemlos.
    Ich habe ein Webinterface aufgebaut, mit dem ich nun in Echtzeit die Werte dort anzeigen lassen möchte. Die Aktualisierung des Wertes sollte nach jeder Sekunde (oder weniger als 1s) erfolgen.
    Nun ist die Frage wie man das am besten umsetzen kann.

    Es scheidet aus, die Seite dauerhaft komplett zu aktualisieren.

    Ich habe in einigen Threads was von AJAX gehört, womit das wohl möglich wäre. Da mein Wissen über HTML, PHP JAVA usw. nicht ganz ausreicht, um die AJAX Hilfestellungen aus dem Netz komplett zu verstehen, hoffe ich hier vielleicht ein paar einfachere und/oder direktere Lösungsvorschläge zu bekommen bzw. vielleicht hat jemand schon mal so ein Projekt gehabt und könnte mir mit einer kleinen Anleitung (oder LINK) weiter helfen.

    Vielen Dank, Makkez

  • Werte verarbeiten und laufend aktualisieren (AJAX)? Schau mal ob du hier fündig wirst!

  • Da bleibt dir kaum etwas anderes übrig, als dich mit JavaScript und HTML zu beschäftigen.
    AJAX selbst ist nichts anderes als eine Methode, per JS Daten vom Server zu laden und diese dann auf der Seite verwenden zu können.
    Es gibt diverse JS-Bibliotheken die dir das Leben leichter machen können, z.B. jQuery was einen AJAX-Aufruf wesentlich vereinfacht. Allerdings gilt hier wie eigentlich immer: Du solltest die Grundlagen beherrschen, bevor du eine Bibliothek nutzt.

  • Ok, dass sehe ich ein. Mit dem jQuery habe ich auch eben gelesen, jedoch werde ich dafür eben die Grundlagen brauchen die angesprochen hattest oder es dauert eben bis ich was passendes gefunden habe.

    Wie wäre es wenn ich auf meine html Seite eine Chatbox einbaue und die Daten die ich vom Raspi bzgl. des Potis ausgespuckt bekomme, dort dauerhaft einfüge (umleite)- würde das funktionieren, Sinn machen?

  • jQuery zu verwenden nur um einen AJAX basierenden Aufruf zu verwenden ist hirnlos. Das simple AJAX wie es in JS bereits auf n Seiten tausend mal dokumentiert ist reicht.
    -jQuery ist dazu überladen, nur um AJAX Calls zu machen.

  • Hallo,

    weil's mich interessiert hat hier mal ein Minimalbeispiel in Python, bei der Bottle eine Webseite ausliefert, bei der ein Teil alle 3 Sekunden nachgeladen und aktualisiert wird:

    Den JavaScript-Teil / jQuery Teil ist auf den gewünschten Anwendungsfall wohl übertragbar.

    Ansonsten liefert Google eine ganze Reihe guter Ergebnisse (inkl. solcher, wo z.B auch eine Fehlerbehandlung eingebaut ist), wenn mal als Suchbegriff `jquery ajax request every 5 seconds` nutzt.

    Gruß, noisefloor

  • Hallo Makkez,

    ich habe die Aktualisierung per AJAX in meiner Software an sehr vielen Stellen benötigt. Du kannst dich gerne beim Quelltext bedienen https://forum-raspberrypi.de/www.ordersprinter.de. es ist freie Software. Ein Einstiegspunkt ist z.B. die Datei paydesk.html.

    In Grundzügen geht das mit jQuery, JavaScript und PHP so:

    Am besten baust du folgende zyklische Abfrage ein:


    Code
    $(document).ready(function() {
        var refreshId = setInterval(function() {
                aktualisiereEtwas();
         }, 10000);
         $.ajaxSetup({ cache: false });
    });

    Damit wird nun eine Methode "aktualisiereEtwas" alle 10 Sekunden aufgerufen.

    Die Methode kann nun so aussehen:

    Die Funktion "aktualisiereEtwas" holt sich also vom Server über die URL "php/was_auch_immer.php..." aktuelle Daten und schreibt sie in das HTML-Element, welches mit "html_element" beteichnet ist. Alles, was mit einem Dollar-Zeichen anfängt, bedeutet, dass hier jQuery genutzt wird. Dass musst du natürlich am Anfang der Seite einbetten. Man kann es auch ohne jQuery machen, aber es nimmt einem eine Menge Coding-Arbeit ab... :)

    Ich hoffe, ich konnte dir etwas weiterhelfen. Sonst einfach fragen...

    Gruß,

    Stefan

    Einmal editiert, zuletzt von heli (21. Juli 2015 um 22:10)

  • Vielen Dank für die schnellen Antworten. Ich werde mir eure Antworten mal genauer ansehen und mir noch einige Sachen aneignen,
    damit ich das dann mit AJAX usw. umsetzen kann.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!