Lume dinamică: JavaScript

JavaScript face mai mult decât să înfrumuseteze paginile Web. Este o solutie completă, usor de folosit în crearea site-urilor de o calitate superioară.
Péter László

Lavigând pe Web, am văzut site-uri în care, atingând un buton, acesta prindea viată, site-uri care arată diferit în functie de ziua vizitei sau formulare care ne avertizează dacă am completat gresit un câmp din el. JavaScript poate să facă toate acestea si chiar mai multe. O multime de site-uri folosesc aplicatii tip „telecomandă“ si butoane „vii“, iar văzând acestea ne convingem că JavaScript este mai mult decât un instrument cu care împodobim paginile noastre. În acest articol propun să descoperim cum se încadrează JavaScript în programarea pe Web, cum functionează si rolul său în crearea site-urilor Web de o nouă generatie.

Ce este JavaScript?

Creat de Netscape, JavaScript apare pentru prima dată în Navigator 2.0. Original numit LiveScript avea scopul să satisfacă cerintele de script ca parte a mediului de dezvoltare de aplicatii Netscape LiveWire. A fost redenumit în 1995 având în vedere circumstantele limbajului Java si a fost conceput de la început ca un limbaj de script usor de folosit pentru realizatorii site-urilor Web. Cu ajutorul acestuia se pot construi aplicatii puternice pe Web, dar nu este solutia totală pentru acesta.Deseori JavaScript este interpretat gresit de către constructorii HTML si de multi altii, care nu au deloc sau foarte putin trecut de programator. Tratând ca o cutie neagră, acestia simplu copiază părti ale scripturilor pentru a avea efectul dorit. Însă JavaScript înseamnă mult mai mult, necesitând niste cunostinte de programare. Esenta scripturilor JavaScript se poate întelege numai atunci dacă le privim ca o parte organică a programării pe Web.

De ce JavaScript?

Sunt mai multe metode cu care putem să transformăm o pagină web statică într-una dinamică. O solutie tipică este CGI care se execută pe servere. Utilizatorii interactionează cu o pagină web programată, completând un formular HTML si trimitând la o aplicatie CGI. Aplicatia primeste datele de intrare, execută niste operatii si eventual returnează un rezultat. Acest tip de programare a aplicatiilor web este des folosit la operatii cu baze de date, căutări sau vizualizări de cataloage.

Multi utilizatori însă observă că programele CGI sunt foarte lente. Si acesta nu este singura deficientă a acestora. Dacă programul CGI este scris într-un limbaj interpretat lent, cum este Perl, si nu un cod compilat C, acesta poate să ruleze destul de lent. Mai mult, unele sisteme de operare lansează repetat mai multe copii ale aceleiasi aplicatii CGI, consumând astfel resurse de sistem. Dezvoltarea aplicatiilor de partea serverului, cum ar fi Netscape API (NSAPI), Microsoft Internet Server Application Programming Interface (ISAPI) sau module de server Apache pot să elimine din lipsurile CGI -ului, dar o problemă fundamentală rămâne: serverul trebuie să facă toată munca. Mai mult, punând toate programele de partea serverului, este o solutie destul de ineficientă. Să presupunem că facem o comandă de pantofi via Internet, si din greseală, în formular introducem un număr de pantof neexistent (în loc de 39 introducem 93). Este imposibil să avem un asemenea număr de pantof, dar formularul chiar si în acest caz este trimis la server, care pierde o vreme cu căutarea numărului cerut. Ar fi o solutie elegantă, ca datele din formular să fie verificate înainte ca ele să fie trimise la server. Rezultatul nu numai că ar fi mult mai prietenos cu privire la utilizator, dar ar economisi si din timpul serverului. (vezi figura „Rolul JavaScript-ului în paginile Web programate“)

Cu toate că JavaScript a fost creat să prelucreze astfel de situatii, este mult mai mult decât un limbaj de validare formulare. Am putea imagina JavaScript ca un „lipici“ de partea clientului (si nu a serverului) care tine împreună elementele dintr-o pagină Web. El poate determina ce browser folosim, ce plug-in-uri sunt instalate si multe altele necesare pentru a crea o pagină dinamică. Iar cu introducerea tehnologiei Netscape LiveConnect, JavaScript a devenit un limbaj care poate fi utilizat pentru a controla si comunica între obiecte ca plug-in-uri, layere, frames, style sheets si appleturi în paginile Web. Rolul de „lipici“ a lui JavaScript nu a fost realizat în întregime, dar are potentialul să devină mai important decât însăsi HTML-ul.

Cum se utilizează JavaScript

JavaScript are două forme primare: JavaScript interpretat pe partea de client (client-side JavaScript) si JavaScript compilat de partea de server (server-side JavaScript). Versiunea de server este rezervată exclusiv pentru produse Netscape LiveWire. Cealaltă versiune este cea accesibilă utilizatorilor Web si care, pe scurt, ar însemna o colectie de comenzi înglobate într-o pagină HTML. După definitie aceste comenzi sunt incluse între tagurile <SCRIPT LANGUAGE=”JavaScript”> si </SCRIPT>. După prima vedere se pare că JavaScript nu diferă de HTML, dar în timp ce HTML defineste structuri, layout-uri si legături între documente, JavaScript adaugă logică si facilităti de programare.

Există trei părti de bază unde se poate amplasa JavaScript: în tagul <HEAD>, în tagul <BODY> si cu taguri HTML. Cînd o pagină care are înblobate elemente de JavaScript este citită de către un browser care cunoaste JavaScript, comenzile sunt interpretate linie cu linie si executate corespunzător. Unele comenzi - ca afisarea datei pe ecran - sunt executate imediat de către browser, iar altele sunt suspendate asteptînd interactiunea cu utilizatorul (ex. apăsarea unui buton).

Sintaxa limbajului JavaScript este familiar persoanelor care au folosit limbaje ca C. Aspectul cel mai delicat reprezintă faptul că multitudinea de obiecte dintr-un browser (ferestre, frame-uri, formulare etc) pot fi controlate din JavaScript prin simpla referintă la obiect. Obiectele au proprietăti încorporate, numite atribute, iar programele orientate-obiect pot foarte usor să le modifice pe acestea. Aplicînd conceptul de orientat-obiect pentru lumea browserelor, putem modela browserul ca o colectie de obiecte, cuprinzînd ferestre, farme-uri, formulare etc.

De exemplu, fereastra de browser este modelată ca un obiect numit „window“. Printre atribute se află si „status bar“ -ul, care poarte fi setat cu JavaScript prin comanda asociată: window.status = „Hello World“.

JavaScript are si functii înglobate, numite metode, care pot efectua operatii asupra unor obiecte. De exemplu, dacă vrem să definim o fereastră de avertisment folosind obiectul window, putem folosi comanda window.alert(„Hello User“) si fereastra este creată cu textul în ea.

Numărul metodelor si proprietătilor din JavaScript este enorm, dar nu trebuie să fim intimidati de acesta, fiindcă JavaScript este un limbaj „curat“ si procedural.

Cheia de a folosi JavaScript în modul cel mai avantajos este de a stii cînd si unde să-l introducem în pagină. Limbajul ne poate ajuta să îmbunătătim interfata paginii cu mici butoane, ferestre de tip pop-up si multe altele, fără a necesita cunostinte aprofundate de programare, chiar prin simpla copiere a unor scripturi în pagina noastră. Adevărata putere a lui JavaScript se cunoaste numai atunci cînd este combinat cu alte tehnologii, ca HTML, ActiveX, CGI, plug-in -uri si Java, pentru a transforma pagina noastră Web dintr-unul static într-unul dinamic.

Péter László Zsolt este student la Universitatea „Petru Maior“ din Tg.Mures. Poate fi contactat la lpeter@uttgm.ro.

(C) Copyright Computer Press Agora