Arhitectura unei aplicatii
Web bazate pe AJAX
Ca
oricare alta aplicatie Web, o aplicatie AJAX contine, in
principiu, doua parti: o parte care se executa pe client si o parte care se
executa pe server. Ceea ce deosebeste partea care se executa
pe client a aplicatiilor AJAX
de partea corespunzatoare a aplicatiilor clasice este ca aceasta contine o
logica de control specifica paginii, introdusa prin intermediul JavaScript,
care permite o interactiune bazata pe evenimente. O pagina Web poate fi impartita
in mai multe fragmente, continutul fiecaruia putand fi actualizat independent
de al celorlalte, prin intermediul AJAX.
Astfel, nu este necesara reincarcarea intregii pagini
atunci cand se doreste actualizarea continutului unui anumit fragment al
paginii. De
asemenea, AJAX
impune o arhitectura pe partea de server diferita de cea a
aplicatiilor Web clasice, necesara pentru a suporta modelul de interactiune
descris. Intr-o aplicatie Web clasica, partea care se executa pe server se
concentreaza pe generarea de continut HTML sau de alta
natura, de fiecare data cand o actiune a clientului determina un apel catre
server. Atunci, clientul va reimprospata intreaga
pagina pentru fiecare raspuns al serverului. In schimb, partea de server a aplicatiilor bazate pe AJAX este alcatuita din componente care
genereaza date XML, acestea din urma fiind transformate si introduse drept continut
al fragmentelor documentului HTML. Astfel, pagina Web poate fi considerata ca un container, in
ale carui fragmente serverul furnizeaza continut actualizabil la aparitia unor
evenimente. Dintre posibilele utilizari
ale AJAX mentionam:
validarea in timp real a datelor introduse
in campurile formularelor: anumite date introduse intr-un formular (ex.,
identificatori, coduri postale, numere seriale) care necesita validare pe
server pot fi supuse acestui proces inainte ca utilizatorul sa determine
trimiterea intregului continut;
autocompletare: o data introdusa intr-un camp al
unui formular (ex., adresa de e-mail, nume) poate fi completata automat, odata ce
utilizatorul a introdus primele caractere ale acesteia;
actualizarea
datelor incluse in diverse fragmente ale paginii: tabele, reprezentari grafice,
diagrame etc.;
notificari ale serverului: pot fi determinate notificari din
partea serverului catre client realizate prin diverse mesaje, precum si reimprospatarea
datelor sau redirectari;
construirea unor interfete cu utilizatorul sofisticate: pot fi realizate diverse controale (ex.,
meniuri, arbori, bare de progres) care vor fi utilizate fara reimprospatarea intregii
pagini.