Citeam lunile trecute o carte scrisă de un colectiv de autori români: Cristian Darie, Bogdan Brinzarea, Filip Cherecheş-Toşa, Mihai Bucica intitulată “AJAX and PHP – Building Responsive Web Applications“. Primul capitol al cărţii prezintă un exemplu genial al unui copil care stă în faţa unui calculator şi îi cere acestuia să deseneze un robot. Evident, calculatorul nu îl “ascultă”. Ideea din spatele acestei poveşti este una complexă, legată de idealizarea lumii în care trăim: într-o lume ideală, calculatorul ar fi îndeplinit dorinţa băiatului. Acest lucra ar fi fost posibil prin faptul că înterfeţele ar fi devenit predictive şi prietenoase.
Nu putem discuta despre interfeţe fără a lua în considerare termenul de “uzabilitate” (îl voi folosi de azi înainte în urma micii discuţii avute pe forumul domnului profesor George Pruteanu – la fel şi despre “situri si site-uri“). Aşa cum spuneam şi acolo, uzabilitatea se referă la arta prin care sunt înţelese şi satisfăcute cerinţele utilizatorului referitoare la o interfaţă grafică.
Tehnicile de uzabilitate au fost aplicate de-a lungul anilor în principal aplicaţiilor desktop. Totuşi, odată cu explozia aplicaţiilor internet/intranet şi apariţia sintagmei potrivit căreia “Internetul nu doarme niciodată” se doreşte o migrare a uzabilităţii şi la aplicaţiile internet/intranet. Aceasta se poate realiza prin crearea unor interfeţe utilizator uşor de folosit, cât mai transparente.
Ajungem, aşadar, fără să vrem în lumea aplicaţiilor care lucrează cu ceea ce se numeşte “client greu” (rich client). Ca exemplu, paginile web actuale rulează într-un navigator care este considerat “client uşor”. În opoziţie, marea majoritate a aplicaţiilor desktop sunt considerate “clienţi grei”. Versiunea pe deplin maturizată a internetului va fi formată în principal din clinţi grei, astfel încât utilizatorii vor putea “trăi” aceleaşi experienţe ca şi în cazul aplicaţiilor desktop.
Client greu: clienţi care pot îndeplini funcţiile de procesare a datelor pe cont propriu, fără a depinde în totalitate de un server.
Client uşor: client minimalist care utilizează cât mai puţine resurse cu putinţă pe calculatorul gazdă. Rolul său este în general acela de a afişa date puse la dispoziţie şi procesate de către un server fără de care clientul uşor nu poate exista.
În 2004, Tim O’Reilly a sumarizat trăsăturile celei de-a doua generaţii a internetului (cunoscută sub numele de Web 2.0):
- “reţeaua este o platformă” care serveşte aplicaţii complete utilizatorilor prin intermediul unui navigator web
- datele de pe sit sunt proprietatea utilizatorilor care le adaugă; aceştia au control asupra datelor
- este construită pe baza unei arhitecturi care încurajează participarea activă a utilizatorilor, sporind astfel valoarea aplicaţiei în cauză
- interfeţele grafice sunt intuitive, plăcute, şi, mai ales, transparent
Sursa: http://en.wikipedia.org/wiki/Web_2
Interfeţele grafice transparente au la bază o tehnologie matură, botezată de către Jesse James Garrett în februarie 2005 AJAX (Asynchronous JavaScript and XML). Ajax permite apeluri asincrone transparente către server, preluarea doar acelor date care sunt necesare şi actualizarea doar unei părţi dintr-o pagină internet. Aşadar, este rezolvată veşnica problemă a reîncărcării paginilor (atât de supărătoare!). Acesta este motivul pentru care Ajax este considerat răspunsul la problema verigii lipsă din noua generaţie de web (Web 2.0). Ajax NU este Web 2.0 (după cum spuneam, este o tehnologie veche), Web 2.0 nu poate exista fără Ajax. Este o confuzie care ar trebui eliminată.
Ajax se bazează pe trei componente importante:
- Document Object Model (DOM) – arborele tuturor elementelor care compun în navigator o pagină web. Este prezent în orice navigator care are suport pentru JavaScript. DOM-ul permite manipularea elementelor unei pagini web, schimbarea lor, fără a mai fi nevoie de reîncărcarea paginii.
- XMLHttpRequest – sufletul tehnologiei Ajax, este cele care permite practic iniţierea de apeluri asincrone transparente spre server. La fel, este prezent în toate navigatoarele care au suport JavaScript
- o tehnologie server oarecare care să proceseze cererile aplicaţiei noastre
În lumea reală, Google este un pionier al aplicaţiilor web, lansând numeroase tendinţe în domeniu:
Acest articol se bazează pe extrase prelucrate din următoarele lucrări:
- Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett – Professional Ajax – Wiley Publishing, Inc. (2006)
- Justin Gehtland, Ben Galbraith, Dion Almaer – Pragmatic Ajax – A Web 2.0 Primer – The Pragmatic Programmers LLC (2005)
- Dave Crane, Eric Pascarello – Ajax in Action – Manning Publications Co. (2006)
- Ryan Asleson, Nathaniel T. Schutta – Foundations of Ajax – Apress (2006)
- Christian Gross – Ajax Patterns and Best Practices – Apress (2006)
- http://www.ajaxian.com/
- http://www.ajaxmatters.com/
- http://ajaxpatterns.org/