Ajax: Fortlaufend Aktualisierung im IE7 geht nicht
RedOu
- javascript
Hallo zusammen!
Ich bin zurzeit mit Javascript und AJAX am arbeiten. Nun habe ich folgendes Problem:
Beim Status 'onreadystatechange' möchte ich, da der aufruf über 10 Sekunden lange geht, den Text immer fortlaufend aktualisieren. Dies geliengt im Firefox auch ohne Probleme, nur im IE7 geht dies nicht. Gibt es dafür eine Lösung?
Mein Code:
if (window.XMLHttpRequest){
xmlhttp = XMLHttpRequest();
}
if (window.ActiveXObject){
xmlhttp = ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp != null){
var url="treeUpdate.php";
xmlhttp.onreadystatechange=loadTree;
xmlhttp.open("GET",url,true);
xmlhttp.setRequestHeader("Pragma", "no-cache");
xmlhttp.setRequestHeader("Cache-Control", "must-revalidate");
xmlhttp.setRequestHeader("If-Modified-Since",document.lastModified);
xmlhttp.send(null);
}
function loadTree(){
// Fenster aktualisieren(funktioniert nur in Firefox)
loadTreeBox.innerHTML = xmlhttp.responseText;
if (xmlhttp.readyState==4){
// Anfrage erfolgreich beendet
loadTreeBox.innerHTML = xmlhttp.responseText;
}
}
Hi,
Beim Status 'onreadystatechange' möchte ich, da der aufruf über 10 Sekunden lange geht, den Text immer fortlaufend aktualisieren.
Womit?
function loadTree(){
// Fenster aktualisieren(funktioniert nur in Firefox)
loadTreeBox.innerHTML = xmlhttp.responseText;if (xmlhttp.readyState==4){
Du kannst nicht davon ausgehen, dass die responseText-Eigenschaft des XMLHttpRequest-Objektes schon etwas enthält, bevor readyState 4 erreicht ist.
Bei Mozilla ist das zwar so definiert, bei anderen Browsern aber möglicherweise nicht.
Bedenke, dass du hier mit einem Objekt arbeitest, das nach einer Reihe von bestehenden Implementierungen erst spezifiziert worden ist.
MfG ChrisB
hallo,
Vielen Dank für die schnelle Antwort!
Beim Status 'onreadystatechange' möchte ich, da der aufruf über 10 Sekunden lange geht, den Text immer fortlaufend aktualisieren.
Womit?
Damit der User sieht wie weit das Skript schon ist. Es dauert eben manchmal etwas länger.
Die php-Datei gibt eben eine List mit Haken/Kreuzen zurück.
Okay, schade habe gedacht gibt sicher auch eine Lösung für den IE. Dann werde ich auf alternativen(mehrer Ajax-Anfragen) ausweichen müssen.
Vielen Dank nochmals!
greez RedOu
hi,
Beim Status 'onreadystatechange' möchte ich, da der aufruf über 10 Sekunden lange geht, den Text immer fortlaufend aktualisieren. Dies geliengt im Firefox auch ohne Probleme, nur im IE7 geht dies nicht. Gibt es dafür eine Lösung?
Dafür vielleicht nicht, aber eine andere Herangehensweise, Interesse?
Horst Gammelfleisch
Hallo,
Dafür vielleicht nicht, aber eine andere Herangehensweise, Interesse?
Ja, gerne!
greez RedOu
Hallo,
Dafür vielleicht nicht, aber eine andere Herangehensweise, Interesse?
Ja, gerne!
Siehe Antwort von Chris. Ansonsten readyState abfragen, bei 2 sind schonmal die header empfangen.
Hotti