XMLHttpRequest – Statusanzeige
Dieses Script zeigt die Nutzung eines XMLHttpRequests (Ajax) am Beispiel eines Dateidownloads. Es können die verschiedenen Stadien zwischendurch ausgegeben werden.
Genutzt wird hier die Technologie Ajax (Asynchronous JavaScript and XML) die einen asynchronen Datenaustausch mit dem Server zulässt.
Die Datei test.txt muss in diesem Beispiel im selben Verzeichniss liegen wie dieses Script.
Natürlich gibt es dazu auch ein Beispiel.
- <script type=„text/javascript„>
- // Wenn das Fenster geladen wird
- window.onload = function(){
- // Es wird festgestellt ob ein Microsoft,
- // oder ein auf Gecko basierender Browser vorliegt
- // Wenn beides nicht zutrifft hat req den Wert false
- var req = (window.XMLHttpRequest)?new XMLHttpRequest():((window.ActiveXObject)
- ?new ActiveXObject(„Microsoft.XMLHTTP„):false);
- //
- // im Falle eines Server-Antwort-Code-Wechsels aus,
- //
- // open(METHODE,URL,ASYNCHRON=TRUE,SYNCHRON=FALSE);
- //
- // Wichtig, da sonst der Server erst am Ende antwortet und nicht schon zwischendurch,
- // was ja der Sinn von Ajax sein soll
- req.open(„GET„,„test.txt„,true);
- req.onreadystatechange = function(){
- // Wenn Fortschritt = 0, dann wurde der Request noch nicht abgeschickt,
- //
- if(req.readyState == 0){
- //
- //
- // Wenn Fortschritt = 1, Request wird gestartet, wurde aber noch nicht abgeschickt
- }else if(req.readyState == 1){
- //
- //
- // es wird auf Server-Antwort gewartet
- }else if(req.readyState == 2){
- //
- // Wobei der Prozess noch nicht beendet ist, da auf eine
- // Antwort des Servers gewartet wird
- //
- // Antwort des Servers sind schon im Puffer
- }else if(req.readyState == 3){
- //
- //
- // Servers erhalten, Up-/Download abgeschlossen
- }else if(req.readyState == 4){
- //
- // Wenn Statuscode = 200 oder „OK“, Anfrage erhalten und Daten sind in Serverantwort
- if(req.status == 200 || req.status == „OK„){
- // Datei wird als alert() ausgegeben
- alert(req.responseText);
- // Wenn nichts zutrifft
- }else{
- alert(„ERROR: „+req.statusText);
- }
- }
- }
- // Erst nach Aufruf von „send()“ wird die Anfrage gesendet
- req.send(null);
- }
- </script>