tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
623
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Manuel Hegemann
    Manuel Hegemann Manuel Hegemann ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Ort
    Groß-Rohrheim (Hessen)
    Beiträge
    145
    Hallo zusammen,

    ich möchte zu Beginn meines XMLHttpRequests();, also eigentlich noch kurz vorher, ein Bild einblenden, was dem Benutzer anzeigt, "Seite wird geladen...", also ein übliches Loading-GIF.
    Nach Abarbeitung des Scriptes, also nachdem die Daten jetzt für den Benutzer angezeigt werden, soll dieses Bild wieder ausgeblendet werden.

    Das Problem: Der Abarbeitungsvorgang des Scriptes. Es sieht so aus, als würde er das Einblenden und Ausblenden des Bildes erst nach Bearbeitung des XMLHttpRequests(); durchführen, da kein Bild angezeigt wird. Kommentiere ich den Code für das Ausblenden des Bildes aus, zeigt er es an...

    Gibt es also eine Möglichkeit es zu "erzwingen", dass erst das Bild angezeigt wird und erst dann der XMLHttpRequest(); durchgeführt wird und dann... naja... dann eben das Bild wieder ausgeblendet wird?

    Hier mal mein Code...
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    function getDir(changeDir, windowId, columnId, sessname, sessid) {
        var loaderDiv = document.getElementById('loader_' + windowId);
        loaderDiv.style.visibility = "visible";
        
        try {
            req = new XMLHttpRequest();
        } catch (e) {
            try {
                req = new ActiveXObject('Msxml2.XMLHTTP');
            } catch (e){
                try {
                    req = new ActiveXObject('Microsoft.XMLHTTP');
                } 
                catch (failed){
                    req = null;
                }
            }  
        }
     
        req.open('POST', '../modules/ajax/getDir.php', 'true');
     
        req.onreadystatechange = function() {            
            switch(req.readyState) {
                case 4:
                    if(req.status!=200) {
                        alert("Fehler: " + req.status); 
                    } else {    
                        var finderDiv = document.getElementById('window_' + windowId);
                        finderDiv.innerHTML = req.responseText;
                    }
                    break;
                default:
                    return false;
                    break;     
            }
        }
     
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send('changeDir=' + changeDir + '&windowId=' + windowId + '&columnId=' + columnId + '&' + sessname + '=' + sessid);
     
        loaderDiv.style.visibility = "hidden";
    }

    Danke im Voraus für Eure Antworten und viele Grüße aus Frankfurt,
    BigManu
     
    Gruß,
    Manuel

    Programmers are busy writing the next best idiot proof software. The universe in the meantime is making the next best idiot. The universe is winning...
    - - -
    There are 10 kinds of people. Those who understand binary and those who not.

  2. #2
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    wenn das Bild erst ausgeblendet werden soll, nachdem der Request beendet wurde, musst du das Ausblenden in der Callback-Funktion onreadystatechange anstossen.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    req.onreadystatechange = function() {            
      switch(req.readyState) {
        case 4:
          if(req.status!=200) {
            alert("Fehler: " + req.status); 
          } else {    
            var finderDiv = document.getElementById('window_' + windowId);
            finderDiv.innerHTML = req.responseText;
            [B]loaderDiv.style.visibility = "hidden";[/B]
          }
          break;
        default:
          return false;
          break;     
      }
    }
    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  3. #3
    Avatar von Manuel Hegemann
    Manuel Hegemann Manuel Hegemann ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Ort
    Groß-Rohrheim (Hessen)
    Beiträge
    145
    Argh, vielen Dank. Funktioniert wunderbar
     
    Gruß,
    Manuel

    Programmers are busy writing the next best idiot proof software. The universe in the meantime is making the next best idiot. The universe is winning...
    - - -
    There are 10 kinds of people. Those who understand binary and those who not.

Ähnliche Themen

  1. Beginn und Ende einer Kalenderwoche?
    Von wachteldonk im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 24.03.10, 20:39
  2. Antworten: 3
    Letzter Beitrag: 13.03.10, 10:22
  3. Antworten: 10
    Letzter Beitrag: 28.02.09, 23:07
  4. Beim laden einer Funktion Bild anzeigen
    Von BillaBong im Forum PHP
    Antworten: 3
    Letzter Beitrag: 18.09.08, 17:54
  5. Bild automatisch anzeigen/ausblenden
    Von Tualex im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 13.10.06, 13:40