Die hier erforderliche Kernfunktionalität kann man übrigens auch
komplett ohne Ajax-Framework hinbekommen, das sind nur ein paar Zeilen
Javascript.
Zunächst wird ein XMLHttpRequest-Objekt erzeugt:
1 | if (window.ActiveXObject)
|
2 | oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
|
3 | else if (window.XMLHttpRequest)
|
4 | oXmlHttp = new XMLHttpRequest();
|
Das enthält bereits die erforderliche Browserweiche, um mit IE und
"richtigen" Browsern (Mozilla, Opera, Safari etc.) zu funktionieren.
Dieses Objekt kann nun in einer zyklisch aufzurufenden Funktion dazu
verwendet werden, Daten beim Webserver anzufragen.
1 | window.setTimeout("Timerfunktion()", 1000);
|
Das initialisiert eine im Sekundentakt aufgerufene Funktion.
Diese Funktion reinitialisiert den Timer, damit sie nach einer Sekunde
wieder aufgerufen wird und fordert beim Webserver Daten an:
1 | function Timerfunktion()
|
2 | {
|
3 | window.setTimeout("Timerfunktion()", 1000);
|
4 |
|
5 | oXmlHttp.abort();
|
6 |
|
7 | oXmlHttp.onreadystatechange = handleStateChange;
|
8 |
|
9 | oXmlHttp.open("POST", strUrl, true);
|
10 |
|
11 | oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
12 |
|
13 | oXmlHttp.send(strRequest);
|
14 | }
|
strUrl ist die abgefragte URL, strRequest sind die per POST
übergebenen Daten.
handleStateChange ist eine Funktion, die aufgerufen wird, wenn sich
der Status des XMLHttpRequest-Objekts ändert
1 | function handleStateChangeDpBlock()
|
2 | {
|
3 | if (oXmlHttp.readyState == 4)
|
4 | {
|
5 | if (oXmlHttp.status == 200)
|
6 | {
|
7 | strResult = oXmlHttp.responseText;
|
8 | // was damit machen
|
9 | }
|
10 | }
|
11 | }
|
Mit dem in strResult zurückgegebenen Text kann z.B. ein <div>-Element
gefüllt werden, das geht auch mit der Textbox, nach der der
Threadstarter fragte.
Die anzufragende URL sollte halt keine komplette Webseite zurückgeben,
sondern nur den in der Textbox anzuzeigenden Text.
Das aber ist, wenn man den Webserver im Griff hat, eher gar kein
Problem.
Auch wenn bei Ajax das X für XML steht, und auch das
XMLHttpRequest-Objekt das XML im Namen führt, zwingt einen niemand, hier
XML zu verwenden. Die Anfrage an den Webserver kann ganz simple Daten
enthalten, und auch die Antwort kann ebenso einfach strukturiert werden.