Seite im Hintergrund immer wieder erneuern
Johanna
- html
- javascript
- mysql
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
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.
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
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