Datenbank abfrage alle 5 sec
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bild
browser
check
code
dank
date
folgendes code
header
holen
http
last
nachricht
probier
problem
stimmen
teil
test
url
versuch
wirt
-
Hallo LC,
Ich habe folgnen script um meine DB alle 5 sec abzufragen:
<div id="shoutcastdiv"> <? include ("sql2.php"); $query = ("SELECT * FROM chat where id like '1' "); $result = mysql_query($query); //while ($data = mysql_fetch_array ($result)) while ($data = mysql_fetch_array($result)) { $'nachricht'= htmlspecialchars(mysql_escape_string($data['nachricht'])); echo"$'nachricht'<br>"; } ?> <a name="bancor"></a> <a name="bancor2"></a> </body> </div> <script type="text/javascript" language="javascript"> var http_request = false; function macheRequest(url) { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); // zu dieser Zeile siehe weiter unten } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen'); return false; } http_request.onreadystatechange = alertInhalt; http_request.open('GET', url, true); http_request.send(null); } function alertInhalt() { if (http_request.readyState == 4) { // alert(http_request.responseText); document.getElementById("shoutcastdiv").innerHTML = http_request.responseText; } } iv = setInterval("macheRequest('test.php')",5000); </script> </html>
allerdings klappt das nicht so wie ich es will wenn ich auf die Seite gehe gibt er mir alle nachrichten mit der id 1 aus. Aber wenn ich die Nachricht in der db ändere Wirt die Änderung nicht auf der Seite angezeigt.
wo ist der Fehler?
LG
Christian
Beitrag zuletzt geändert: 15.2.2010 18:37:11 von christian1603 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Vermutlich das gleiche Cache-problem was ich auch vor kurzem hatte...
Probier folgendes:
var iv = window.setInterval("macheRequest('test.php?t=' + (new Date()).getTime())",5000);
Erklärung:
Manche Browser holen sich "test.php" aus der Cache statt die Seite neu abzufragen.
dadurch das man die unix-timestamp reinsetzt ist die url immer anders und wird nicht mehr aus der Cache geholt. -
simuliertes schrieb: Vermutlich das gleiche Cache-problem was ich auch vor kurzem hatte...
Probier folgendes:
var iv = window.setInterval("macheRequest('test.php?t=' + (new Date()).getTime())",5000);
Erklärung:
Manche Browser holen sich "test.php" aus der Cache statt die Seite neu abzufragen.
dadurch das man die unix-timestamp reinsetzt ist die url immer anders und wird nicht mehr aus der Cache geholt.
Danke! Schei.. Cache ich dachte der Speichert nur Bilder.... Naja egal klappt ja jetzt! -
Wenn das so ist hilft ja eventuell auch dieser code direkt von der php.net seite.
Ich nutze den Code immer wenns ums solche Cache-Geschichten geht
Das einfach in die "test.php" einfügen und schon sollte der Browser das file neu laden.
// Date in the past header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // always modified header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // HTTP/1.1 header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // HTTP/1.0 header("Pragma: no-cache");
-
christian1603 schrieb:
simuliertes schrieb: Vermutlich das gleiche Cache-problem was ich auch vor kurzem hatte...
Probier folgendes:
var iv = window.setInterval("macheRequest('test.php?t=' + (new Date()).getTime())",5000);
Erklärung:
Manche Browser holen sich "test.php" aus der Cache statt die Seite neu abzufragen.
dadurch das man die unix-timestamp reinsetzt ist die url immer anders und wird nicht mehr aus der Cache geholt.
Danke! Schei.. Cache ich dachte der Speichert nur Bilder.... Naja egal klappt ja jetzt!
zu früh gefreut.
Ich habe jetzt :
var iv = window.setInterval("macheRequest('ChatBox.php?User=Chrissi#unten' + (new Date()).getTime())",5000);
im Firefox geht auch alles Aber im IE lädt er nach 5 sek eineleere Seite?! Woran kann das Liegen?
edit:Sry ich habe?t= vergessen jetzt geht es. Kann gelöscht werden.
Beitrag zuletzt geändert: 16.2.2010 16:44:39 von christian1603 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage