Hallo Forenaktive,
ich hoffe, ihr könnt mir helfen:
Ich habe vor, einen XMLhttp-Request absetzen und zuvor einen Preloader einzublenden und nach Erhalt der Antwort wieder auszublenden.
Mit folgendem Code setze ich einen SYNCHRONEN Request ab, d.h. der Programmcode soll bewusst warten bis eine Antwort geliefert wurde.
function getdatafunc(fileUrl) {
var req;
var fileContent;
// Firefox etc.
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.open("GET", fileUrl, false);
req.send(null);
fileContent = req.responseText;
}
// Internet Explorer
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
req.open("GET", fileUrl, false);
req.onreadystatechange=function() {
if (req.readyState == 4) {
fileContent = req.responseText;
}
}
req.send(null);
}
return fileContent;
}
Von der Idee her, soll der Preloader angezeigt werden, die Daten geladen und anschließend der Preloader ausgeblendet werden:
document.getElementById('preloader').style.visibility = 'visible'; //Preloader anzeigen
data = eval(getdatafunc(fileUrl)); //SJAX-Request absetzen
document.getElementById('preloader').style.visibility = 'hidden'; //Preloader ausblenden
Im Firefox funktioniert dieser Ansatz. Im Internet Explorer wird der Request wie ein AJAX-Request behandelt und der Code weiter ausgeführt. Der Preloader wird daher sofort wieder ausgeblendet.
Hat jemand eine Idee, wie ich auch im Internet Explorer das gewünschte Ergebnis erziele?
Viele Dank im Voraus!
a5cl3p1o5