Ajax - Dezavantaje
S-a vorbit in articolul Ajax un pas inainte de ce este utila tehnologia Ajax, dar ca orice lucru tehnologia Ajax are si dezavantaje. Acest articol se va concentra pe latura negativa a Ajax.
Integrarea in browsere
Una din "paradigmele internetului" - navigarea se face prin intermediul legaturilor intre pagini distincte ce contin informatii, astfel fiecare informatie disponibila este identificata unic prin intermediul unui URL.
Bazandu-se pe aceasta "paradigma" browsere stocheaza o istorie a navigarii utilizatorului si ofera posibilitatea de a reveni la ultimile pagini vizitate. Folosirea Ajax incalca aceasta paradigma, deoarece browsere nu pot sa salveze o istorie a modificarilor paginii, folosirea butonului BACK intr-un browser nu va avea efectul asteptat.
Si la aceasta problema exista solutii ingenioase. O posibiliate este folosirea de elemente HTML IFRAME sau OBJECT ascunse in care se va incarca continutul update-ului. Google Maps este un exemplu de aplicatie care foloseste un IFRAME invizibil in care incarca harti.
Pentru a crea bookmark-uri catre paginile generate prin Ajax se poate folosi portiunea Fragment Identifier din URL (aflata dupa #), pentru care browserele ofera suport de modificare prin Javascript .
Serverul poate salva pe baza acestor id-ul de zone rezultatele cererilor XHR(XmlHttpRequest) si in general starea paginii la un anumit moment, pentru ca apoi utilizatorul sa o poata accesa si sa revina la aceea stare.
Timpul de raspuns
Aici sunt trei aspecte de luat in considerare :
- La prima accesare/schimbare radicala a contextului a unei pagini care foloseste Ajax, ca si la paginile in Flash, exista o perioada in care pagina nu este functionala si utilizatorul este nevoit sa astepte pentru un timp nedeterminat.
- In cazul in care latenta retelei este mare abordarea cu cereri asincrone nu are efectul asteptat, continutul nu mai poate fi updatat eficient in fundal, rezultatul fiind asemanator cu cel al unei pagini clasice.
- Lipsa unor mecanisme "standard" (daca se poate sa le numim asa) care sa permita notificarea utilizatorului de anumite evenimente care se petrec in fundal. De exemplu cand se termina de incarcat o portiune de pagina, cand sunt trimise anumite campuri (la completarea de formulare).
Probleme de SO
Una din cele mai mari critici aduse Ajax (si in general continutului dinamic) este faptul ca nu permite SO(Search Engine) sa acceseze continutul generat prin Ajax, astfel ca paginile care se axeaza pe generare de cod HTML o sa se plaseze mai jos in cadrul cautarilor. Una din solutii extremiste propuse ar fi sa mentii doua copi de site, una pentru utilizatori care foloseste Ajax si alte cu cod HTML pentru SO.
Acesta solutie nu este tocmai de dorit, deoarece este problematic sa sincronizezi doua view-uri ale site-ului si daca SO descopera ca site-ul arata altfel pentru utilizatorii obisnuiti va considera ca se incerca o ducere in eroare a SO - "cloacking " care este penalizata prin BANAREA site-ului.
Concluzie
Tehnologia Ajax ofera multe facilitati pentru imbunatirea experientei utilizatorilor, dar trebuie folosita cu raspundere luandu-se in considerare si aspectele negative.