Johanna: Seite im Hintergrund immer wieder erneuern

Ich erstelle eine Seite die mir die aktuellen Ölpreise ermittelt. Dieser sind, werden in einer MYSQL Datenbank hinterlegt. Diese rufe ich über eine

SELECT mysql Abfrage ab.

und dann werden die letzten 10 Einträge ausgegeben. Im Augenblick mache ich das über

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

was zwar geht aber nicht wirklich schön ist.

Die Ausgabe erfolgt in einem DIV

Nun würde ich gerne die Abfrage im Hintergund immer wieder ausführen, und falls es eine Neuerung gibt, nur den Inhalt im DIV neu Laden, und nicht die ganze Seite.

(Wunschtraum: Am liebsten soll sich der Neue Eintrag nur vor die alten Einträge setzen. )

einen schönen Sonntag noch

Johanna

  1. Hello,

    das geht mit einem Asynchronen Javasript Request, ggf. unter Zuhilgemahme vom jQuery, ganz einfach.

    Ich kenne aber solche Seiten und muss mich immer darüber ärgern, dass ich Änderugnen nicht mitbekomme. Man sollte also darüber nachdenken, ob man mit jeder Änderung nicht auch die Farbe/Hintergrundfarbe wechselt. Dabei sollte die Seite allerdings auch nicht zu einer Lichtorgel mutieren...

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
    1. Hej TS,

      das geht mit einem Asynchronen Javasript Request, ggf. unter Zuhilgemahme vom jQuery, ganz einfach.

      Ich kenne aber solche Seiten und muss mich immer darüber ärgern, dass ich Änderugnen nicht mitbekomme. Man sollte also darüber nachdenken, ob man mit jeder Änderung nicht auch die Farbe/Hintergrundfarbe wechselt. Dabei sollte die Seite allerdings auch nicht zu einer Lichtorgel mutieren...

      Schwierig. Wenn es noch mehr INhalte auf der Seite gibt, fände ich das extrem störend.

      Wenn das die einzigen Inhalte sind, ist ein kompletter Reload IMHO ok. - Sinnvoll wäre IMHO im Hintergrund zu prüfen, ob überhaupt neue Daten vorliegen

      Marc

  2. Hallo Johanna,

    um den asynchronen Teil umsetzen zu können, musst Du Deine Seite zweiteilen. Wenn der Rahmen, also das, was von der SQL Query nicht beeinflusst wird, komplett statisch ist, kannst Du ihn ggf. sogar als reine HTML Seite ausliefern und brauchst kein PHP dafür.

    Für die Preisliste hast Du nun die Wahl. Entweder du erzeugst ein HTML Fragment, das Du einfach als innerHTML in dein Rahmen-DIV hineinklebst, oder du erzeugst im PHP ein JSON-Objekt, das Du clientseitig in ein HTML-Fragment übersetzt (hier sind ein paar Tipps dazu). Das Ergebnis dieses preisliste.php rufst Du per Javascript periodisch mit fetch() (Infos dazu im MDN ab.

    Rolf

    --
    Dosen sind silbern