miercuri, 16 ianuarie 2008

sâmbătă, 5 ianuarie 2008

Introducere in lumea AJAX

AJAX este acronimul pentru Asynchronous JavaScript and XML. Daca numele nu spune prea multe putem sa il interpretam ca "JavaScript imbunatatit" pentru ca de principiu ofera posibilitatea unui JavaScript sa faca in background apeluri catre server si sa extraga informatii aditionale daca este nevoie, updatand anumite portiuni din pagina fara sa cauzeze reincarcari complete de pagina. Principiul de functionare este urmatorul: clientul face o cerere pentru o pagina php sa zicem; serverul executa scriptul php de pe server si construieste un raspuns ce contine HTML si JavaScript; din scripturile JavaScript incluse in raspuns se pot face apeluri "invizibile" catre server; serverul raspunde trimitand datele cerute iar scriptul va updata pagina web folosind aceste date.

Practic AJAX incearca o mai buna balansare intre functionaliteatea clientului si cea a serverului atunci cand se executa actiunea ceruta de user. Pana acum functionalitatea client-side si functionalitatea server-side erau privite ca 2 parti complet separate in ceea ce priveste raspunsul la actiunile userului. AJAX vine cu solutia de balansare a load-ului intre client si server permitandu-le sa comunice in background in timp ce userul lucreaza pe pagina.

Sa luam un exemplu simplu : un web form in care userului i se cere sa introduca niste date cum ar fii numele, adresa de email, parola samd care trebuie sa fie validate inainte de a se ajunge la business-ul aplicatiei. Fara AJAX existau 2 modalitati de validare. Prima care il lasa pe user sa introduca toate datele cerute dupa care se face submit la pagina si prelucararea dateleor pe server. In acest scenariu userul experimenteaza un dead time in timp ce asteapta raspunsul serverului. Alternativa ar fii fost sa se faca aceste verificari la client, dar presupunea supraincarcarea clientului, lucru nu foarte placut.

In scenariul AJAX aplicatia web poate valida datele introduse, facand apeluri catre server in background in timp ce userul introduce date. Spre exemplu cand userul selecteaza o tara, browserul poate cere serverului sa incarce "on the fly" lista oraselor pentru tara respectiva, fara sa-l intrerupa pe user de la activitatea curenta.

Asadar AJAX-ul este o tehnologie care permite crearea de aplicatii web interactive prin permiterea paginilor web sa faca apeluri asincrone si transparente userului in timp ce acesta lucreaza.

Pentru a avea o mai buna idee despre ce poate sa ofere AJAX-ul iata cateva exemple ilustrative:

* Google Suggest care ajuta la cautarile google
* GMail
* Google Maps
* Yahoo Maps
* Windows Live Local

Ca si alte tehnologii AJAX-ul poate fii utilizat in mod gresit. Doar prin simplul fapt ca un web-site foloseste AJAX nu garanteaza ca web-site-ul va fii mai bun. Depinde si de cum este folosita aceasta tehnologie.

vineri, 4 ianuarie 2008

JavaScript

JavaScript este un limbaj de scripting utilizat de obicei in dezvoltarea partii de client a aplicatiilor web. Javascript poate specifica , in mod obisnuit, in doar cateva randuri , raspunsurile la actiuni sau evenimente cum ar fi deschiderea unei pagini, deplasarea mouse-ului intr-un anumit punct sau stergerea unui anumit camp dintr-un formular.

JavaScript a fost initial dezvoltat de Netscape sub numele de Mocha, devenind mai tarziu LiveScript si in final transformandu-se in JavaScript. Schimbarea de nume de la LiveScript la JavaScript s-a produs cand Netscape a adaugat suport pentru Java in browserul Nestcape Navigator. Ceea ce diferentiaza JavaScript-ul de alte limbaje de programare este utilizarea prototipurilor in loc de clase si utilizarea array-urilor asociative ca elemente bloc principale.

Principala utilizare a JavaScript-ului este de scrie functii ce sunt inglobate sau incluse din pagini HTML si care interactioneaza cu arborele DOM(Documet Object Model) al paginii. Cateva exemple simple de utilizare sunt:

* deschiderea unei ferestre popup avandu-se controlul programatic asupra dimesiunii, pozitiei si look-ului noii ferestre
* validarea inputurilor unui web form inainte ca datele sa fie trimise la server
* schimbarea imaginilor ca rezultat al miscarii mouse-ului deasupra lor; acest efect este utilizat pentru a atrage atentia userului asupra unor link-uri importante afisate ca elemente grafice

Pentru ca JavaScript ruleaza pe client poate raspunde rapid actiunilor userului facand aplicatia mai responsive. In plus codul JavaScript poate detecta actiuni pe care HTML-ul simplu nu poate, cum ar fii apasarea de taste. Aplicatii precum Gmail profita din plin de aceste feature-uri : o mare parte din logica interfetei grafice este scrisa in JavaScript, iar JavaScript-ul face diferite cereri de informatie catre server(de ex. cerere de aducere a continutului unui e-mail). Aici, pentu comunicarea asincrona cu serverul intervine o alta tehnologie, AJAX-ul, dar despre aceasta in articolul urmator...