Ajax IE hohlt Daten aus Cache anstatt von Server
Markus
- javascript
Hallo,
ich versuche mich gerade etwas mit Javascript weil ich das ganze recht Interresant finde. Ich versuche Daten aus einen PHP Script zu laden (das Script liefert nur einen Timestamp). Das funktioniert auch. Mit Firefox etc funtioniert es schon. Mit den Internet Explorer leider nur einmal, danach speichert er die gehohlten Daten im Browsercache und benutzt bei erneuten abfragen diese "veralteten Daten". Wie kann ich das Ausstellen?
Ich erzeuge das ActiveXObject so:
http_request = new ActiveXObject("Msxml2.XMLHTTP");
bzw. http_request = new ActiveXObject("Microsoft.XMLHTTP");
Und so Schicke ich das request ab:
http_request.onreadystatechange = showInhalt;
http_request.open('GET', 'test.php', true);
http_request.send(null);
//showInhalt zeigt den Timestamp nur im Alert an.
Gruß
Markus
Hallo Markus,
ich habe auch erst angefangen mich mit dem thema auseinander zusetzen... du solltest aber an der stelle vorher noch nach folgenden 2 dingen abfragen bevor du "onreadystatechange durchführst:
if (http_request.readyState == 4)
if (http_request.status == 200)
http_request.onreadystatechange = showInhalt;
Grüsse,
Mick
Hi,
schlimmstenfalls indem Du einen wechselnden Parameter an den URL hängst (z.B. einen aktuellen Timestamp).
Gruß, Cybaer
http_request = new ActiveXObject("Msxml2.XMLHTTP");
bzw. http_request = new ActiveXObject("Microsoft.XMLHTTP");Und so Schicke ich das request ab:
http_request.onreadystatechange = showInhalt;
http_request.open('GET', 'test.php', true);
http_request.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
http_request.send(null);
//showInhalt zeigt den Timestamp nur im Alert an.
Damit wird das Cache umgangen - zumindest wenn die Daten auf dem Server nicht älter als das angegebe Datum sind.