IE empfängt Ajax offenbar nur einmal
Kalle_B
- browser
Hallöle,
meine Seiten teste ich mit Opera und Firefox. Aber wenn ich Langeweile habe, nehme ich auch mal den IE 6 (neuere Versionen laufen ja nicht unter Win2000 - aber vielleicht auf Linux?).
Dann gibt es immer was nachzubessern, zu flicken und zu schrauben. Wie bei einem Oldtimer üblich ;-) Die Fahrer des Oldtimers kennen allerdings keine Kopfstützen, Sicherheitsgurte und Airbags, auch die Nutzer vom IE müssen nicht alles haben, was in den Seiten drinsteckt. Aber trotzdem, das Radio (hier: Ajax) sollte funktionieren ...
Auf dieser Seite wird der Text im iPhone alle 20 sec per Ajax geholt.
Mich wundert, dass der IE zwar eine Ajax- Abfrage absetzt und die Antwort auch empfängt (mit alert überprüft), aber nur einmal. Jeder weitere Aufruf von getNewContent() gibt das erste Ergebnis zurück, auch wenn die rufende Seite neu geladen wird.
IE meldet zwar den Fehler 'Objekt erforderlich' in Zeile 58:
otr = ot.tHead.rows[0];
aber die Funktion wird gar nicht aufgerufen. Wahrscheinlich spinnt der bei der Zeilenangabe (zählt der nur die Javascript-Zeilen?).
var http = createRequestObject();
//===============================
function createRequestObject()
//===============================
{
var objAjax;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
objAjax = new ActiveXObject("Microsoft.XMLHTTP");
}else{
objAjax = new XMLHttpRequest();
}
return objAjax;
}
//==================================================
function getNewContent()
//==================================================
{
var programm = "[PHP_SELF]?zp=p505&anzahl=1&faktor=0.6";
//alert ( 'getNewContent()' );
http.open("get", programm );
http.onreadystatechange = updateNewContent;
http.send(null);
return false;
}
//============================
function updateNewContent()
//============================
{
if(http.readyState == 4)
{
// alert ( 'updateNewContent()' );
document.getElementById('von_ajax').innerHTML = http.responseText;
}
}
Woran liegt das?
Gruß, Kalle
Woran liegt das?
Vermutlich am Cache.
Woran liegt das?
Vermutlich am Cache.
Das glaub ich nicht - aber wahr!
Habe für den Ajax- Aufruf einen lfd. Zähler angehängt:
var cache = 0;
//==================================================
function getNewContent()
//==================================================
{
var programm = "[PHP_SELF]?zp=p505&anzahl=1&faktor=0.6&t=" +(cache++);
//alert ( 'getNewContent()' );
http.open("get", programm );
http.onreadystatechange = updateNewContent;
http.send(null);
return false;
}
Danke dir.
Kalle
Hi,
Wahrscheinlich spinnt der bei der Zeilenangabe (zählt der nur die Javascript-Zeilen?).
der IE liefert bisweilen recht abstruse Zeilenangaben. Hier vermute ich das Problem in dem abgeholten HTML-Code.
IE meldet zwar den Fehler 'Objekt erforderlich' in Zeile 58:
otr = ot.tHead.rows[0];
Befindet sich dort (oder an einer Stelle, die mit Tabellen zu tun hat) ein Event-Handler? Wenn ja, prüfe den darin enthaltenen JavaScript-Code dahingehend, ob ein IE ihn akzeptiert.
Cheatah