Tuesday, December 2, 2008

AJAX



Definirea AJAX
AJAX nu este o tehnologie. Este, de fapt, este un cumul de mai multe tehnologii.
AJAX cuprinde:
- o prezentare bazata pe standarde , folosind XHTML si CSS;
- afisarea si interactiunea dinamica, folosind DOM;
- schimbul si manipularea datelor cu XML si XSLT;
- recuperarea asincrona a datelor folosind XMLHttpRequest
- si JavaScript pentru a lega totul.
Modelul clasic de aplicatie web functioneaza astfel : marea parte a actiunilor in interfata declanseaza o cerere HTTP pentru un server web.Serverul indeplineste unele sarcini - de a recupereaza date, efectueaza calcule, comunica cu diferite sisteme , apoi returneaza o pagina HTML catre client.



Figura 1: modelul traditional pentru aplicatii web (stânga), comparativ cu modelul de AJAX (dreapta).
Aceasta abordare are sens tehnic, dar nu nu ofera confort utilizatorului. In timp ce serverul is face treaba , untilizatorul ce face ? Exact, el asteapta.Si la fiecare etapa a dezvoltarii, utilizatorul asteapta un pic mai mult. Odata ce este descarcata interfata , de ce ar trebui ca interactiunea cu utilizatorul sa se opreasca, ori de câte ori acesta are nevoie de ceva de la server ?

Ce aduce AJAX ?
O aplicatie AJAX elimina modul de interactionare actioneaza-asteapta -actioneaza-asteapta de pe web prin introducerea de un intermediar - un motor Ajax - intre utilizator si server. S-ar putea spune ca adaugarea a inca unui nivel in aplicatie ar face-o si mai putin reactiva , dar se intâmpla exact opusul. In loc de a incarca o pagina, inca de la inceputul sesiunii, browserul incarca un motor AJAX - scis in Javascirpt . Acest motor este responsabil pentru aducerea interfetei dorite de utilizator precum si de comunicarea cu serverul. Motorul AJAX autorizeaza ca interactiunea utilizatorului cu aplicatia sa fie asincrona – independenta de comunicarea cu serverul. Astfel utilizatorul nu vede decat fereastra si o clepsidra, asteptand ca serverul sa faca ceva.





Figura 2: Modelul de interactiune sincrona a unei aplicatii traditionale web (de mai sus), comparativ cu schema asincrona a unei aplicatii AJAX (mai jos).


Fiecare actiune a unui utilizator care ar trebui ,in mod normal , sa genereze o cerere HTTP ia forma unui appel Javascript pe motorul AJAX . Orice raspuns la o actiune a unui utilizator care nu are nevoie de prea multe informatii de pe server – cum ar fi o simpla validare de date, editare de date in memorie, si chiar si unele forme de navigare - este administrata de motor.In cazul in care motorul are nevoie de ceva de la server pentru a raspunde – de ex : de a trimite date pentru o actiune, descarcare de cod suplimentar, sau de a prelua date noi - motorul face cererea asincrona , de obicei, utilizând XML, fara a interzice interactiunea utilizatorului cu aplicatia. AJAX ne da posibilitatea sa ne imaginam o larga paleta de posibilitati facand mult mai interesanta interactinea dintre om si lumea computerelor.



No comments: