Rozhodol som sa preto len z malej časti priblížiť prácu s touto technológiou a vyskúšať si na malom príklade, ako to celé funguje. Vytvoríme si jednoduchú webovú stránku, ktorá bude zobrazovať číslo, ktoré sa ukladá do textového súboru na webovom serveri a po stlačené na tlačidlo sa hodnota zväčší a opäť zapíše do toho istého súboru.
K dispozícii máme tieto súbory, ktoré som pripravil ako príklad:
Hlavný súbor: test_ajax.html
<HTML>
<HEAD>
<TITLE>AJAX Example</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<SCRIPT language='JavaScript' src='sarissa.js' type='text/javascript'></SCRIPT>
<SCRIPT language='JavaScript' type='text/javascript'>
function doincrement()
{
// Set up the request
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'test.php', true);
// The callback function
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.all.increment.value = xmlhttp.responseXML.getElementsByTagName('value')[0].firstChild.data;
}
}
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(null);
}
</SCRIPT>
</HEAD>
<BODY>
Value <INPUT type="text" name="increment">
<INPUT type="button" onclick="doincrement();" value="Increment">
</BODY>
</HTML>
Tu je dôležitá funkcia doincrement(), v ktorej je naprogramovaná asynchrónna komunikácia s webovým serverom - spúšťanie súboru test.php. Po spustení funkcie sa vykoná tzv. "call back" - spätne volaná funkcia, ktorá sa vyvolá asynchronne podľa času ukončenia spracovania súboru test.php na webovom serveri.
Voľne stiahnuteľný v javascripte napísaný súbor: sarissa.js Tento súbor obsahuje rozšírenie o pár metód triedy XMLHttpRequest(). Trieda XMLHttpRequest je jadro technológie AJAX, ktorú budeme v našom webe využívať.
Výkonný súbor, ktorý je vyvolávaný užívateľom z klientského PC pomocou objektu xmlhttp: test.php . V tomto súbore je vyvolaná akcia priamo na serveri. Samozrejme, že tu je možné vykonávať ľubovoľnú akciu ako napr. čítanie alebo zápis dát do databáz a podobne. V našom prípade tam len čítame hodnotu premennej "value" zo súboru test.txt, ktorú zväčšujeme po každom volaní súboru pomocou objektu xmlhttp a potom jej zväčšenú hodnotu zapisujeme naspäť do súboru test.txt. Isteže takýto jednoduchý úkon je možné naprogramovať priamo v javascripte nech sa vykonáva priamo u klienta na webovej stránke, ale pre čo najjednoduchšiu ilustráciu som zvolil takýto triviálny príklad.
Súbor test.txt v ktorom sa ukladá naša inkrementovaná hodnota, celé číslo. Stačí všetky tieto súbory prekopírovať do spoločného adresára na webový server a naštartovať stránku test_ajax.html. Po štarte webovej stránky je možné si to vyskúšať na tlačidle "Increment", kde veľmi elegantným spôsobom - jednoduchým klikaním na tlačidlo sa komunikuje s webovým serverom.
Súbory sú uložené v prílohe ajax.zip.
S pozdravom







