Java Reference
In-Depth Information
HInTErGrunDInFOrMATIOn: Das HTTP-Protokoll gestattet es nicht, dass
ein Webserver von sich aus eine Kommunikation mit einem Client initiiert. Eine
Kommunikation muss immer vom Client aus gestartet werden. Der Server kann
nur auf eine Anfrage reagieren. Dies ist auch ein unabdingbares Sicherheits-
feature, denn welcher Anwender würde es gern sehen, wenn wildfremde Web-
server ungefragt Informationen oder gar gefährliche Skripte oder Applikationen
in den Browser pushen könnten? Aber diese Einschränkung des Kommunika-
tionswegs zwischen Client und Server erschwert die beschriebenen Situationen,
in denen sich Informationen sehr schnell auf dem Server ändern und es gewähr-
leistet sein muss, dass diese Informationen zeitnah im Browser des Anwenders
landen. Sie können in der Regel vom Anwender nicht verlangen, dass er manuell
eine Webseite im Sekundentakt aktualisiert (wobei das im Fall von Versteigerun-
gen teilweise wirklich gemacht wird - aber das ist natürlich nicht komfortabel).
Um diesen Einschränkungen bei sehr interaktiven RIAs mit einer gewissen Aus-
richtung zu begegnen, gibt es aktuelle verschiedene Ansätze über neue Proto-
kolle für die bidirektionale Kommunikation im Web, auf die wir im Buch noch
eingehen. Der Knackpunkt ist hier aber, dass ein Anwender registriert sein
muss und diese Push-Technologie mit einem Sicherheitskonzept zur Absiche-
rung des Clients gekoppelt wird. Rein auf HTTP-Basis kann man mit dem obigen
Schema arbeiten, wenn die Webseite auf dem Server dynamisch neu aufgebaut
wird.
8.9.3.9■Eine Aktion zeitverzögert aufrufen
Die Methode mit Namen setTimeout() erlaubt die zeitverzögerte Ausführung einer Aktion.
Dazu geben Sie als ersten Parameter eine Anweisung und als zweiten Parameter die zu
wartende Anzahl von Millisekunden an. Die Methoden haben wir ja auch schon in Beispie-
len gesehen. Die schematische Syntax sieht so aus:
Listing 8.36■ Die Syntax von setTimeout()
setTimeout( [Anweisung] , [Millisek] )
Die Methode setTimeout() gehört zu den wichtigsten Methoden von window überhaupt.
Allerdings muss man beachten, dass mehrere nacheinander notierte setTimeout() -Metho-
den alle ab dem gleichen (!) Zeitpunkt die Verzögerung starten. Mit anderen Worten  -
wenn zwei oder mehrere Schritte in einem Skript nacheinander - mit deinierter Verzöge-
rung  - ablaufen sollen, muss in den verwendeten setTimeout() -Methoden jeweils eine
unterschiedliche Zeitspanne stehen. Bei mehreren verzögerten Schritten verwendet man
aber meist einen rekursiven Aufruf.
Eine Animation mit setTimeout()
Schauen wir uns als Beispiel eine kleine Animation an, die rekursiv die Breite eines CSS-
formatierten DIV-Bereichs sowie asynchron dazu ein Bild vergrößert. Dieses Beispiel gehört
zum DHTML-Umfeld. Es entsteht beim DIV-Bereich der Eindruck eines Fortschrittsbalkens
und beim Bild der Eindruck, als bewege sich der Inhalt auf den Betrachter zu. Wir wollen
 
Search WWH ::




Custom Search