Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von November

SELFHTML Forumsarchiv
Ajax Ladegrafik - Wie wird sowas eingebaut?

Informationsseite
  1. Seite (JAVASCRIPT) Ajax Ladegrafik - Wie wird sowas eingebaut? von daniel2, 16. 11. 2006, 02:14
nach unten

Ajax Ladegrafik - Wie wird sowas eingebaut?

Die folgende Nachricht zum Thema stammt von: daniel2, 16. 11. 2006, 02:14

Hallo alle zusammen,

ich unternehme gerade die ersten Schritte mit Ajax. Im Grunde klappt auch alles schon ganz passabel - was ich mich jetzt aber frage: Wie bekomme ich diese schicken Ladegrafiken angezeigt, während mein Script auf die Antwort des Servers wartet?

Ich habe mir ein kleines Testscript gebastelt, das ein php-Script aufruft, welches eingeltich nur eine sleep()-Funktion enthält ;-)

Angestoßen wird das ganze durch dieses HTML:
<a href="#" onClick="get_pause('delay',5)">Scriptausf&uuml;hrung verz&ouml;gern</a>

Daraufhin wird diese Funktion aufgerufen:
function get_pause(action,seconds) {

 // XMLHttpRequest absetzen
 if(XMLHTTP.readyState==4 || XMLHTTP.readyState==0) {
  XMLHTTP.open("GET","get_xml_feed.php?action="+action+"&seconds="+seconds);
  XMLHTTP.onreadystatechange = cb_show_pause;
  XMLHTTP.send(null);
 }

}

Die Callback Funktion dürfte unerheblich sein (in diesem Fall gibt sie dann nur noch die Sekunden aus, um die das Script verögert wurde).

Meine Frage ist nun: Wo muss ansetzen, wenn ich während dem Warten auf die Antwort des Servers eine entsprechende Statusmeldung oder eine Ladegrafik anzeigen will? Ich vermute mal, ich muss irgendwie abfragen, welcher readyState gerade herrscht und bei readyState=1 ("Lädt gerade") irgendwas anzeigen? Aber wie sieht das im Detail aus?

Vielen Dank für eure Hilfe,
Grüße,
Daniel


nach obennach unten

Ajax Ladegrafik - Wie wird sowas eingebaut?

Die folgende Nachricht zum Thema stammt von: michi, 16. 11. 2006, 02:30

Hallo,

blende doch einfach das Bild ein, nachdem Du den request ausgeführt hast und onreadystatechange (also hiern zB in cb_show_pause) blendest Du es bei 4 wieder aus.

»» function get_pause(action,seconds) {
»»
»» // XMLHttpRequest absetzen
»» if(XMLHTTP.readyState==4 || XMLHTTP.readyState==0) {
»»   XMLHTTP.open("GET","get_xml_feed.php?action="+action+"&seconds="+seconds);
»»   XMLHTTP.onreadystatechange = cb_show_pause;
»»   XMLHTTP.send(null);

zeigeBild();

»» }
»»
»» }

function zeigeBild()  {
document.getElementById("DeinBereitsVorhandenesLadeBild").style.display = "block";
// oder Du kannst es hier auch erst erzeugen und dann einhängen, zB.
// var lade = document.createElement("IMG");
// lade.src = "DeinBildURL";
// usw.
}

in cb_show_pause, bzw. der Funktion die Du von da aus aufrufst, kannst Du es einfach wieder ausblenden: document.getElementById("DeinBereitsVorhandenesLadeBild").style.display = "none";
(oder aus dem DOM wieder entfernen (removeChild)).

Viele Grüße

michi

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von November

© 1998-2008 Seite Impressum, Software: Classic Forum