O tehnică de construire a paginilor web tot mai întâlnită în ultimul timp este AJAX, abreviere de la Asynchronous JavaScript and XML. Această tehnică constă în executarea de cereri HTTP în fundal, fără a reîncărca toată pagina web, şi actualizarea numai anumitor porţiuni ale paginii, prin manipularea DOM-ului paginii. Tehnica AJAX permite construirea unor interfeţe web cu timp de răspuns mic, întrucît operaţia (costisitoare ca timp) de încărcare a unei pagini HTML complete este în mare parte eliminată.
Ajax nu este o tehnologie în sine. Termenul este folosit pentru definirea aplicaţiilor web ce folosesc un ansamblu de tehnologii:
• HTML sau XHTML pentru structura semantică a informaţiilor;
• CSS pentru prezentarea informaţiilor;
• Javascript pentru interactivitate, pentru procesarea informaţiilor prezentate;
• Obiectul XMLHttpRequest pentru schimbul şi manipularea informaţiilor într-o manieră asincronă cu server-ul web;
• XML este folosit de obicei pentru transferarea datelor între server şi client, deşi orice format funcţionează, inclusiv HTML preformatat, text simplu etc.
AJAX este un fenomen complex care poate semnifica ceva diferit pentru fiecare persoană. Pentru utilizatori, AJAX se simte prin situri moderne cu o interfaţă mai prietenoasă şi comportament mai prietenos decât siturile tradiţionale. Pentru programatori, AJAX înseamnă Asynchronous Javascript and XML, şi se referă la un set de tehnologii care permit implementarea unor facilităţi deosebite în aplicaţiile web cu doar puţin efort suplimentar.
Inovaţia AJAX s-a declanşat ca urmare a nevoii de a îmbunătăţi viteza de navigare a siturilor, prin micşorarea timpilor de răspuns la acţiunile utilizatorilor. Pentru fiecare acţiune a utilizatorului, siturile obişnuiau să reîncarce complet pagina pentru a o actualiza cu noi date, chiar şi în cazurile în care schimbările erau minore. Astfel, înainte de AJAX, fiecare click de mouse cauza un timp mort pentru utilizator, până când noua pagină se încarcă.
Este important de înţeles că multe din aceste aşteptări sunt utile şi necesare atunci când ele se întâmplă natural, ca urmare a navigării între diverse pagini. Cel mai simplu argument este că aceste reîncărcări de pagini (page reloads) sunt modalitatea prin care adresa paginii se schimbă, astfel încât ea să poată fi însemnată (bookmarked) pentru referinţe ulterioare. Totuşi această tehnică este folosită excesiv pentru multe alte circumstanţe, când acea aşteptare nu îşi are sensul. Exemplele sunt nenumărate; un exemplu relevant este cazul când este necesară completarea unui formular întreg, şi apăsarea butonului „Submit”, pentru a afla care sunt greşelile făcute în el. În mod natural, aceste greşeli ar trebui semnalizate pe măsura ce sunt făcute. Alte exemple pot fi văzute în multe locuri pe internet, unde situri moderne permit utilizatorului să facă diverse acţiuni (spre exemplu, să voteze prin butoane „Yes/No”), fără ca acestea să cauzeze aşteptări sesizabile.
Eliminarea reîncărcărilor inutile de pagini a fost acel mic pas care a declanşat o avalanşă de eforturi în direcţia îmbunătăţirii interfeţei siturilor web. Facilităţi precum drag-n-drop, validare automata a datelor, unelte web de colaborare interactivă, şi multe altele sunt noi în lumea aplicaţiilor web, acestea fiind asociate în mod tradiţional cu aplicaţiile care rulează local. Toate acestea, deşi uneori fără temei tehnic, sunt atribuite fenomenului AJAX.
Într-adevar, în momentul acesta totul sună bine despre AJAX, dar trebuie ţinut cont de faptul că AJAX e un concept înca foarte nou. El a fost „inventat” în februarie 2005 de către Jesse James Garett în articolul „Ajax: A New Approach to Web Applications”. Ca orice altă tehnologie, AJAX poate fi folosită greşit, cu efecte negative asupra aplicaţiilor. Chiar dacă ingredientele AJAX sunt mature (cea mai nouă componentă este obiectul XMLHttpRequest care a fost conceput de Microsoft în jurul anului 1999), noul lor rol în lumea aplicaţiilor web moderne este încă o temă controversată. În timp ce unii văd AJAX ca fiind viitorul aplicaţiilor web, alţii preferă să nu folosească AJAX deloc. Probabil că testul timpului va arăta, ca de obicei, calea de mijloc ca fiind cea de urmat.
(AJAX and PHP: Building Responsive Web Applications – Cristian Darie)