Hallo,
habe gerade angefangen, ein wenig mit dem AJAX-Konzept herumzuprobieren.
Zunächst habe ich also eine Anwendung geschrieben, die auf Knopfdruck vom Server zwei unterschiedliche Textdateien ausliest und in einem Container anzeigt. Ein dritter Link lässt auf dem Server ein PHP Script laufen, das ebenfalls eine Textdatei (1,5MB) ausliest und an den Browser sendet, der diese dann anzeigt. Die Dateigröße nur, damit der Ladevorgang ersichtlich wird.
Das funktioniert auch alles genauso wie es soll im FireFox. Das Problem macht mal wieder der Internet Explorer:
Solange ein Request bearbeitet oder geladen wird, erscheint in einem Formular "actionform" im Textfeld "t" die Meldung "Bitte warten...". Sobald der Request vollständig eingegangen ist, wird das Textfeld auf "." gesetzt. Soweit im FireFox.
Der IE zeigt diese Statusmeldungen nur einmal pro Link an. Wenn man also zum zweiten Mal auf denselben Link klickt, ändert er das Textfeld nicht mehr.
Vielleicht kann mir ja jemand erklären, woran das liegt und ob das zu ändern ist! Danke.
CODE:
<script language="javascript" type="text/javascript">
<!--
function create_httprequest() { // returns a browser-independend httpRequest Object
var req = null;
try {
req = new ActiveXObject("MSXML2.XMLHTTP");
}
catch (err_MSXML2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (err_Microsoft) {
if (typeof XMLHttpRequest != "undefined")
req = new XMLHttpRequest;
req.overrideMimeType('text/xml');
}
}
return req;
}
function show_div_info(){
if(http_request.readyState == 4){
//alert(http_request.status);
if(http_request.status == 200){
var output = http_request.responseText;
output = output.replace("\n", "<br />");
document.getElementById("div").innerHTML = output;
document.actionform.t.value = '.';
}
else{
document.actionform.t.value = 'Fehler am Request-Server.';
}
}
else if(http_request.readyState != 4){
document.actionform.t.value = 'Bitte warten...';
}
}
function hr(dat_nam){
http_request = create_httprequest();
http_request.onreadystatechange = show_div_info;
http_request.open('GET', dat_nam, true);
//http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Nur nötig für POST Daten!
http_request.send(null);
}
-->
</script>