avantajele si dezavantajele unei aplicatii bazate pe ajax

6
Avantajele si dezavantajele unei aplicatii bazate pe AJAX Motivatie Aparitia aplicatiilor bazate pe AJAX, a insemnat un pas important in dezvoltarea si imbunatatirea modului in care utilizatorii interactioneaza pe aplicatiile web. Termenul de AJAX (Asynchronous JavaScript + XML ) are la baza o suita de tehnologii care ajuta la la cresterea interactivitatii, vitezei si usurintei in utilizarea aplicatiilor web. Aceasta tehnologie s-a nascut din nevoia de imbunatati viteza de navigare a siturilor, prin micsorarea timpilor de raspuns la actiunile utilizatorilor. Pentru fiecare actiune a utilizatorului, siturile obisnuiau sa reincarce complet pagina pentru a o actualiza cu noi date, chiar si in cazurile in care schimbarile erau minore. Astfel, inainte de AJAX, fiecare click de mouse cauza un timp mort pentru utilizator, pana cand noua pagina se incarca. AJAX presupune un schimb de date intre browser si server, astfel incat sa nu mai fie necesara reincarcarea intregii pagini web de fiecare data cand userul face o schimbare in aceasta. AJAX reprezinta o colectie de tehnologii, fiecare utilizata si in mod de sine-statator, dar care combinate permit obtinerea unei unelte foarte puternice: Prezentarea in mod standard a paginilor, prin HTML sau mai noul XHTML, si CSS (Cascading Style-Sheets) pentru aranajrea in pagina a continutului; Afisare dinamica si interactiune folosind DOM (Document Object Model), accesat printr-un limbaj de scripting, pentru a modifica in mod dinamic si a asigura interactiunea cu informatia prezentata; Schimb bidirectional de date si manipulare prin XML intre client si server, desi orice format poate fi folosit, inclusiv HTML, XSLT sau text simplu; Schimbul de date asincron se realizeaza prin obiectul XMLHttpRequest, desi in unele implementari AJAX se poate folosi un IFrame pentru schimbul de date, sau chiar tag-uri <script> adaugate dinamic. JavaScript folosit pentru a lega toate aceste elemente intr-un pachet puternic. Eliminarea reincarcarilor inutile de pagini a fost acel mic pas care a declansat o avalansa de eforturi in directia imbunatatirii interfetei siturilor web. Facilitati precum drag-n-drop, validare automata a datelor, unelte web de colaborare interactiva, si multe altele sunt noi in lumea aplicatiilor web, acestea fiind asociate in mod traditional cu aplicatiile care ruleaza local. Aplicatiile AJAX sunt in principal executate in computerul utilizatorului, prin manipularea paginii curente de catre browser folosind metode de document object model (DOM). AJAX poate fi utilizat pentru o serie de functii precum actualizarea inregistrarilor, expandarea formularelor, returnarea unor cautari simple, editarea de elemente, toate fara nevoia de a reincarca intreaga pagina web in momentul cand aceasta este modificata. Se trimit doar cereri scurte catre server si se primesc raspunsuri de dimensiuni mici. Acest lucru creste interactivitatea si apropie paginile web de posibilitatile aplicatiilor desktop. Acestea ar fi avantajele utilizarii aplicatiilor AJAX totusi, lasand la o parte avantajele se pot observa si oarece dezavantaje la nivel de in interactiune cat si la nivel de implementare. Paginile web ce utilizeaza AJAX pot sa impiedice functionarea comportamentului normal, obisnuit si asteptat al butoanelor de Back dintr-un browser. Utilizatorii se asteapta ca apasand aceste butoane sa fie dusi la aspectul anterior al paginii, dar acest lucru nu este mereu adevarat cand se utilizeaza AJAX, deoarece browserul nu poate tine mereu socoteala modificarilor produse in mod dinamic si asincron. O alta problema a paginilor dinamice este dificultatea de a creea unu link sau un bookmark catre o stare particulara a aplicatiei. De asemeni o alta problema care impiedica rularea aplicatiilor web este reprezentata de

Upload: blank-dots

Post on 26-Jan-2015

108 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Avantajele si dezavantajele unei aplicatii bazate pe AJAX

Avantajele si dezavantajele unei aplicatii bazate pe AJAX

Motivatie

Aparitia aplicatiilor bazate pe AJAX, a insemnat un pas important in dezvoltarea si imbunatatirea modului in care utilizatorii interactioneaza pe aplicatiile web. Termenul de AJAX (Asynchronous JavaScript + XML ) are la baza o suita de tehnologii care ajuta la la cresterea interactivitatii, vitezei si usurintei in utilizarea aplicatiilor web. Aceasta tehnologie s-a nascut din nevoia de imbunatati viteza de navigare a siturilor, prin micsorarea timpilor de raspuns la actiunile utilizatorilor. Pentru fiecare actiune a utilizatorului, siturile obisnuiau sa reincarce complet pagina pentru a o actualiza cu noi date, chiar si in cazurile in care schimbarile erau minore. Astfel, inainte de AJAX, fiecare click de mouse cauza un timp mort pentru utilizator, pana cand noua pagina se incarca.

AJAX presupune un schimb de date intre browser si server, astfel incat sa nu mai fie necesara reincarcarea intregii pagini web de fiecare data cand userul face o schimbare in aceasta. AJAX reprezinta o colectie de tehnologii, fiecare utilizata si in mod de sine-statator, dar care combinate permit obtinerea unei unelte foarte puternice:

• Prezentarea in mod standard a paginilor, prin HTML sau mai noul XHTML, si CSS (Cascading Style-Sheets) pentru aranajrea in pagina a continutului;

• Afisare dinamica si interactiune folosind DOM (Document Object Model), accesat printr-un limbaj de scripting, pentru a modifica in mod dinamic si a asigura interactiunea cu informatia prezentata;

• Schimb bidirectional de date si manipulare prin XML intre client si server, desi orice format poate fi folosit, inclusiv HTML, XSLT sau text simplu;

• Schimbul de date asincron se realizeaza prin obiectul XMLHttpRequest, desi in unele implementari AJAX se poate folosi un IFrame pentru schimbul de date, sau chiar tag-uri <script> adaugate dinamic.

• JavaScript folosit pentru a lega toate aceste elemente intr-un pachet puternic.

Eliminarea reincarcarilor inutile de pagini a fost acel mic pas care a declansat o avalansa de eforturi in directia imbunatatirii interfetei siturilor web. Facilitati precum drag-n-drop, validare automata a datelor, unelte web de colaborare interactiva, si multe altele sunt noi in lumea aplicatiilor web, acestea fiind asociate in mod traditional cu aplicatiile care ruleaza local.

Aplicatiile AJAX sunt in principal executate in computerul utilizatorului, prin manipularea paginii curente de catre browser folosind metode de document object model (DOM). AJAX poate fi utilizat pentru o serie de functii precum actualizarea inregistrarilor, expandarea formularelor, returnarea unor cautari simple, editarea de elemente, toate fara nevoia de a reincarca intreaga pagina web in momentul cand aceasta este modificata. Se trimit doar cereri scurte catre server si se primesc raspunsuri de dimensiuni mici. Acest lucru creste interactivitatea si apropie paginile web de posibilitatile aplicatiilor desktop.

Acestea ar fi avantajele utilizarii aplicatiilor AJAX totusi, lasand la o parte avantajele se pot observa si oarece dezavantaje la nivel de in interactiune cat si la nivel de implementare. Paginile web ce utilizeaza AJAX pot sa impiedice functionarea comportamentului normal, obisnuit si asteptat al butoanelor de Back dintr-un browser. Utilizatorii se asteapta ca apasand aceste butoane sa fie dusi la aspectul anterior al paginii, dar acest lucru nu este mereu adevarat cand se utilizeaza AJAX, deoarece browserul nu poate tine mereu socoteala modificarilor produse in mod dinamic si asincron. O alta problema a paginilor dinamice este dificultatea de a creea unu link sau un bookmark catre o stare particulara a aplicatiei.

De asemeni o alta problema care impiedica rularea aplicatiilor web este reprezentata de

Page 2: Avantajele si dezavantajele unei aplicatii bazate pe AJAX

absenta optiunii de a rula JavaScript in interiorul unui browser. Acest lucru este observat la browserele mobile sau la versiunile mult mai vechi ale browserului. De asemeni persoanele cu disabilitati sau alte impedimente care se bazeaza pe tehnologia de “Text to Speech”, vor avea dificultati in a folosi o astfel de aplicatie.

Google Reader

Avantajele si dezavantajele prezentate mai sus se pastreaza pentru toate aplicatiile bazate pe AJAX. Totusi pentru a analiza si a observa modalitatea in care o astfel aplicatie respecta sau nu anumite sabloane de proiectare, precum si modul in care influenteaza interactiunea cu utilizatorul, vom face un stiu de caz pe o aplicatie AJAX cunoscuta: Google Reader.

Google Reader este o aplicatie pentru citirea feed-urilor RSS, ce doreste sa furnizeze intr-un mod cat mai simplu, actualizarile feed-urilor la cei care sunt abonati la acestea.

Ne vom axa pe sabloanele de proiectare folosite precum si pe uzabilitatea aplicatiei si eventualele probleme care pot aparea la folosirea ei.

Figura 1. Meniul Principal in Google Reader

Modul de organizare al aplicatiei Google Reader este prezentat in Figura 1. Dupa cum putem observa este organizat dupa sablonul “left column navigation”. Acest lucru permite utilizatorului un mai bun control al feed-urilor la care este inscris, avand un raspuns imediat la meniurile pe care le acceseaza in fereastra in care este plasat continutul.

Dupa cum putem obsera in Figura 2 zona de lucru a aplicatiei poate fi impartita in patru zone mari. Prima zona pune la dispozitia utilizatorului alte aplicatii, din cadrul suitei de aplicatii furnizate de Google, pe care le poate accesa, precum si acces rapid la setari. Acest asezare este importanta permitand schimbarea de aplicatii mai usor, astfel imbunatatind modul de lucru al utilizatorului.

Urmatoarea zona este data de optiunea de cautare din cadrul aplicatiei. Dupa cum putem

Page 3: Avantajele si dezavantajele unei aplicatii bazate pe AJAX

observa avem optiunea de a cauta toate feed-urile, grupurile de feed-uri sau fiecare feed in parte. Acest optiune de cautare precum si pozitionarea acesteia imbunatateste experienta utilizatorului cu aplicatia, acesta avand acces imediat la orice informatie prin intermediul optiunii de cautare. Rezultatele cautarii sunt furnizate in zona 4, zona actualizarilor, putand fi vizionate in acelasi mod ca si celelalte actualizari.

Figura 2. Modul de Organizare a informatiei in Google Reader

Urmatoarea zona este data de meniul de control al aplicatiei. Ca si cazul zonelor precedente putem observa ca fiecare element component este asezat dupa importanta lui de sus in jos, deci o organizare “Top-Down”. Astefel primul element component al aceste zone este butonul de adaugare de feed-uri noi, acesta avand functionaliatea si de cautare a noi feed-uri, dupa cum putem observa in Figura 3.

Figura 3. Adaugare Feed-uri in Google Reader

Organzarea feed-urilor la care este abonat un utilizator se poate face in fisiere sau, furnizand o organizare ierarhica, dar acest lucru este lasat la dorinta utilizatorului, ele fiind organizate ca si o lista de feed-uri. Acesta lista se poate ascunde sau filtra dupa anumite optiuni dupa cum putem observa in Figura 4. Fiind o aplicatie AJAX, aceasta ne permite optiunea de “drag and drop” la modul de organizare a feed-urilor, lasand o flexibilitate mai mare utilizatorului la modul de aranjare.

Page 4: Avantajele si dezavantajele unei aplicatii bazate pe AJAX

Figura 4. Optiuni Feed-uri in Google Reader

Meniul de control poate fi ascuns pentru a maximiza zona patru. Aceasta zona reda actualizarile la feed-uri. Dupa cum putem observa in Figura 5 si Figura 6, Google Reader permite doua moduri de vizualizare a actualizarilor. Primul mod este ilustrat in Figura 5, fiind denumit si “List View” dupa modul de redare a continutului sub forma de lista. In acest mod de vizionare a actualiarilor putem observa modul de diferentiere dintre actualizarile care au fost vizionate acestea fiind marcate prin un fundal albastru si actualizarile care nu au fost vizionate fiind diferentiate prin un fundal alb. Acest mod de vizualizare permite utilizatorului sa selecteze mai usor actualizarile pe care doreste sa le citeasca selectand titlul prezentat. In momentul selectarii actualizarii dorite, aceasta se va deschide, in aceeasi fereastra, furnizand continutul utilizatorului. Acest lucru este specific aplicatiilor AJAX, reducand frustrarea utilizatorului de a naviga prin numeroase pagini pana a ajunge sa vizualizeze continutul dorit.

Page 5: Avantajele si dezavantajele unei aplicatii bazate pe AJAX

Figura 5. List View in Google Reader

Modul de vizionare “Extended View”, ilustrat in Figura 6 prezinta actualizare cu intregul continut, permitand astfel utilizatorului sa citeasca fiecare actualizare, in ordinea in care au fost adaugate. Fiind o aplicatie bazata pe AJAX schimbarea intre cele doua moduri de vizualizare se poate face usor folosind optiunile din coltul din dreapta.

Figura 6.Expanded View in Google Reader

Cele doua moduri de vizualizare sunt controlate cu ajutorul unor butoane de navigare si de optiuni. Am identificat mai multe optiuni ce faciliteaza modul in care utilizatorul controleaza aplicatia. In grupul 2 de butoane din Figura 6, aplicatia pune la dispozitie un mod de a marca si a trimite si altor utilizatori acea stire, sau de a o organiza intr-o colectie de stiri favorite, pentru a fi vizionate ulterior. Aceste butoane si optiuni faciliteaza interactiunea cu utilizatorul prin furnizarea lucrurilor de mare interes pentru cel ce foloseste aplicatia.

Pentru a face aplicatia si mai accesibila Google a furnizat o lista taste prin care poate fi controlata aplicatia, fara ajutorul mouse-ului.Spre exemplu taste J si K sunt folosite pentru navigarea printe actualizari, S pentru a trece o actualizare la favorite, etc. O lista completa de comenzi este furnizata la adresa: http://www.google.com/help/reader/faq.html#shortcuts .

Cele prezentate in paragrafele anterioare sunt la nivel de interactiune conventionala cu utilizatorul, un lucru benefic fiind modalitatea de navigare cu ajutorul tastaturii. Totusi la nivel de interactiune neconventionala, luand in vedere persoanele cu disabilitati de vedere, aplicatiile AJAX nu pot fi folosite, nepermitand acestora o navigare usoara. Imbunatatirea acestui mod de interactiune ar face aplicatiile AJAX, mai accesibile si mai interactive pentru

Bibliografia folosita:

1. Official Webpage Google Reader 2. Google Reader FAQ

Page 6: Avantajele si dezavantajele unei aplicatii bazate pe AJAX

3. Ajax Design Patterns - By Michael Mahemoff 2006, O'Reilly