Daten in Website anzeigen und ständig aktualisieren mit Android / IPhone

  • Hallo,

    ich möchte Daten auf einer Website (Lighttpd) ausgeben und ständig aktualisieren.
    Dazu hab ich mal gegoogelt und Beispiele für Ajax gefunden.
    Das würde soweit auch funktionieren, aber nur wenn ich die Seite mit dem PC aufrufe nicht auf mobilen Geräten.

    Daher jetzt zwei Fragen:
    1. ist der Lösungsansatz überhaupt richtig? Oder gibt es andere (einfache) Möglichkeiten das zu realisieren?
    2. Wo könnte der Fehler liegen:


    Hier kommt das erste Beispiel, es sollen ständig (alle 1sek) Daten aus einer Textdatei gelesen werden:
    HTML - Dokument:

    Hier die nachzuladende Datei (hier sollen nachher Messwerte drinstehen):

    Code
    <p id="myContent">
       <a href="#" onclick="loadContent();">Klick mich</a>.
       nachgelandener Ihnalt
    </p>


    Vielen Dank für eure Hilfe!

    Gruß Falk

  • Daten in Website anzeigen und ständig aktualisieren mit Android / IPhone? Schau mal ob du hier fündig wirst!

  • Könnte am Cachen der Seite durch den Browser liegen.

    Ich habe dazu das folgende gefunden:

    und 'reload.php' sieht so aus:

    PHP
    <?php
            echo time(); //just a timestamp example..
    ?>

    Es wird an das Script, das Aufgerufen wird, einfach ein Zufallswert angehangen, der von diesem Script nicht ausgewertet wird, um ein Cachen der Ausgabe zu verhindern.
    Nach Methode 'Holzhammer'

    Computer ..... grrrrrr

    Einmal editiert, zuletzt von Rasp-Berlin (10. Februar 2016 um 14:12)

  • Da gibt es eine noch einfachere Methode. Nehme in den Head deiner Webseite einfach folgende Anweisung auf:

    <meta http-equiv="refresh" content="1" >

    Dann wird die Webseite automatisch jede Sekunde neu geladen.

  • Er will ja nicht, dass die ganze Seite jede Sekunde neu geladen wird, sondern nur, dass dieses eine Element neu geladen wird.

    Die ganze Seite jede Sekunde zu laden wäre doch etwas heftig.

    Computer ..... grrrrrr

  • Ich meine, dass man fuer jeden Request ein neues XMLHttpRequest braucht.

    Und dieser Code scheint mir auch fragwuerdig:
    > setInterval(function() loadContent(), 1000);

    Einfach nur loadContent (ohne Klammern) ist klarer.

    Den Test auf das XMLHttpRequest kann man heute vergessen, seit dem IE8
    kommt auch Microsoft mit dem Standard klar.

    Der Hinweis mit dem Caching ist wichtig. Einige Browser cachen einfach den
    Request, wenn man nicht Gegenmassnahmen ergreift.

    Hier gibt's ein einfaches Beispiel, das sauber gelaufen ist. Es lief zwar auf
    dem Apache, aber es sollte eigentlich soweit portabel sein.

  • Was spricht dagegen jQuery zu verwenden? Das wäre ME weitaus komfortabler. Beide Standard Browser von iPhone als auch Android können problemlos mit jQuery umgehen.

    [code=php]
    <html>
    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jque…0/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
    setInterval( function(){
    $('#myContent').load('hallo.txt');
    }, 1000);
    });
    </script>
    </head>
    <body>
    <p>Ich werde nicht neu geladen</p>
    <p id="myContent">Ich werde neu geladen</p>
    </body>
    </html>
    [/php]

    jquery.min.js kannst du auch lokal ablegen.
    In hallo.txt kannst du auch html code verwenden.

  • Vielen Dank für eure Antworten!

    ich habe mal eure Anregungen ausprobiert.

    kaiuwe: so scheint es schonmal zu funktionieren, wenn sonst nix hilft nehm ich das..

    Rasp-Berlin: die PHP Variante tut genau das was sie soll! Wenn ich jetzt Messwerte habe (aus einem Python script) muss ich dann jedes mal die PHP datei neu erstellen oder kann ich da XML, sqlite o.ä. auslesen?

    Tell: muss ich mir noch durchlesen.

    @maigrafd: das hat auf den ersten Blick auch funktioniert, aber wenn an der Hallo.txt Änderungen vorgenommen werden wird weiterhin eine alte Version der Datei verwendet (vermutlich das oben beschriebene caching)

    Gruß Falk


  • @maigrafd: das hat auf den ersten Blick auch funktioniert, aber wenn an der Hallo.txt Änderungen vorgenommen werden wird weiterhin eine alte Version der Datei verwendet (vermutlich das oben beschriebene caching)

    Das kann ich mit nem iPhone iOS 9.1 nicht nachvollziehen. Bei mir wird die Datei jede Sekunde neu eingelesen.

    Ansonsten fügst du einfach folgendes über " $(document).ready(function() { " ein: $.ajaxSetup({ cache: false });
    Vollständig:

  • Zitat

    Rasp-Berlin: die PHP Variante tut genau das was sie soll! Wenn ich jetzt Messwerte habe (aus einem Python script) muss ich dann jedes mal die PHP datei neu erstellen oder kann ich da XML, sqlite o.ä. auslesen?


    Was du in dieser Datei machst, ist deiner Programmierkunst vorbehalten.

    Du solltest nur bedenken, dass das Aufrufen des Codes in der Datei natürlich auch seine Zeit braucht, und deshalb das Neuladen nicht häufiger passieren sollte, als das aufgerufene Script an Laufzeit hat.
    Wenn das Script, da aufgerufen wird, 0,5 Sekunden läuft, sollte man maximal alle Sekunde neu laden, besser alle 2 Sekunden.

    Ob das nun eine XML-Datei, eine Text-Datei oder das Ergebnis einer anderen Quelle (Datenbank,...) ist, ist egal.

    Computer ..... grrrrrr

Jetzt mitmachen!

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