Java Reference
In-Depth Information
HInWEIS: Das Nachfordern von Daten per AJAX soll im Allgemeinen so gesche-
hen, dass der Anwender die Nachforderung der Daten nicht mitbekommt. Dies
ist jedoch ein Idealfall, der nicht garantiert werden kann. Selbstverständlich
kann eine Verzögerung autreten und es für einen Anwender bemerkbar sein,
dass Daten von der Applikation nachgefordert werden. Es ist nun eine Frage der
Benutzerführung, ob man einem Anwender die eventuelle Verzögerung wirklich
angezeigt oder aber nicht. Rein von der Technik her stehen Ihnen zur Anzeige
des Nachladens von Daten natürlich sämtliche DHTML-Möglichkeiten bereit, mit
denen Sie eine Veränderung der Webseite vornehmen können. Es kann das tem-
poräre Anzeigen eines animierten GIF, ein Fortschrittsbalken, eine temporär
sichtbare Textmeldung, eine Veränderung des Mauszeigers oder irgendein ande-
rer optischer Efekt sein, der mit Beginn des Nachladens sichtbar ist und nach
dem erfolgreichen Eintrefen der Daten verschwindet. Es stellt sich allerdings
die Frage, wie Sie auf die Änderungen des Zustands der Datenübertragung rea-
gieren wollen? Wie wollen Sie erkennen, dass das Nachfordern der Daten
begonnen hat, und wie, dass alle Daten eingetrofen sind? Der Statuscode des
Servers gibt Ihnen Auskunt, ob eine Datenanfrage per AJAX vollständig und
erfolgreich erledigt wurde. Aber Sie sollten nicht zu voreilig auf die Eigenschat
readyState und das Binden einer Reaktionsfunktion an den Eventhandler
onreadystatechange setzen, wie wir es bisher gemacht haben, um die Antwort
des Servers in der Webseite anzuzeigen. Natürlich können Sie die damit zusam-
menhängenden Statuscodes des Servers auch dafür verwenden, parallel
bestimmte Informationen in der Webseite anzuzeigen, während Sie auf eine Ant-
wort warten, und diese Zusatzinformationen wegblenden, wenn die Antwort
durch den Server vollständig ist. Etwa so:
Listing 10.16■ Die interessanten Teile im JavaScript-Part
function sndReq() {
var o = document.getElementById("P1");
o.style.background = "blue";
resObjekt.open('get', 'ajaxverzoegert.php',true);
resObjekt.onreadystatechange = function () {
if(resObjekt.readyState == 4){
o.style.background = "white";
document.getElementById("a1").innerHTML =
resOb.responseText;
};
resObjekt.send(null);
}
In der Funktion sndReq() wird etwa eine bis dato unsichtbare Textmeldung
beim Aufruf der Funktion sichtbar gemacht. In der Reaktionsfunktion wird mit
der Eigenschat readyState ein bestimmter Status der Datenübertragung über-
prüt. Wenn die Daten vollständig übertragen wurden, ändern wir wieder die
Sichtbarkeit der Textinformation, die das Nachladen anzeigt. Dies kann in eini-
gen Fällen bereits genügen und Sie können hier natürlich auch beliebige andere
DHTML-Efekte einsetzen, etwa Bilder temporär anzeigen und dann wieder weg-
blenden.
 
Search WWH ::




Custom Search