Introducere în limbajul JavaScript


Limbajul JavaScript a fost inventat de o echipã de la Netscape, care dorea sã facã browserul lor sã interacþioneze mai mult cu utilizatorul ºi sã facã paginile mai dinamice. Deºi au nume asemãnãtoare, limbajele JavaScript ºi Java nu au nimic în comun unul cu celãlalt. La început, când a fost introdus în browserul Netscape Navigator prima variantã de scriptare rudimentarã, se numea LiveScript. În aceeaºi perioadã, Java era deja lansat ºi era din ce în ce mai cunoscut ºi se anticipa a fi un limbaj revoluþionar. Ulterior, Netscape a actualizat browserul Navigator pentru a permite rularea de appleturi Java în Navigator 2, dar odatã cu aceste actualizãri a redenumit LiveScript în JavaScript.
Java este un limbaj de programare dezvoltat ºi comercializat de compania Sun Microsystems. Limbajul Java este descendent al familiei de limbaje de programare C ºi C++, iar cu ajutorul lui se pot crea diverse aplicaþii ºi se poate controla funþionarea diverselor aparate electronice. Principala utilizare a limbajului Java în domeniul web (client-side), în browserul utilizatorului, este crearea de appleturi, aplicaþii mici care sunt descãrcate prin Internet ºi ruleazã în cadrul browserului. Datoritã compatibilitãþii interplatformã a limbajului Java, aceste appleturi ar trebui sã ruleze identic pe orice browser care permite executarea de cod Java.
Appleturile Java sunt adãugate în pagina web prin folosirea tagului HTML <applet>. Când browserul întâlneºte acest tag, el descarcã appletul Java de pe server, iar appletul va rula în porþiunea de ecran specificatã în tag.
Un script JavaScript este un program inclus într-o pagina HTML. Deoarece este încadrat de tagul <script>, textul scriptului nu apare pe ecran, dar este rulat ºi interpretat de cãtre browser. Tagul <script> este prezent cel mai frecvent în secþiunea <head> a paginii HTML, deºi se pot pune ºi în secþiunea <body>. De obicei, scripturile care urmeazã sã afiºeze mesaje pe ecran sunt scrise în <body>
Când Microsoft a vãzut cã limbajul JavaScript devenea popular, a preferat sã-ºi construiascã un limbaj propriu, foarte similar cu limbajul JavaScript, dar nu chiar identic, denumit JScript.
În continuare este prezentatã o scurtã analizã a diferitelor versiuni de browsere ºi versiunea de JavaScrip pe care o are fiecare.

JavaScript creat de compania Netscape

Prima versiune, initial denumitã LiveScript, a fost lansatã odatã cu browserul Netscape Navigator 2.0. Ea este cunoscutã ºi sub denumirea de JavaScript 1.0. La Navigator 3.0, a fost introdusã versiunea 1.1, care aduce suport pentru imagini, vectori, applet-uri Java ºi plug-in-uri. La versiunea Navigator 4.0 (cunoscut ºi cu numele de Netscape Communicator), a fost introdusã JavaScript 1.2. La Netscape 4.5 - JavaScript 1.3. Versiunea JavaScript 1.4 a fost conceputã sã ruleze exclusiv pe servere. La Netscape 6 a fost adaugatã JavaScript 1.5
Proiectul destinat creeri browserului open-source denumit Mozilla, precum ºi cele derivate de la acesta, cum ar fi Camino pentru Mac OS X, folosesc ECMAScript-262, editia 3, care corespunde versiunii 1.5 de JavaScript (Netscape 6 ºi versiunile ulterioare se bazeazã pe Mozilla)

Browser Versiune script
2.0 1.0
3.0 1.1
4.0 - 4.05 1.2
4.06 - 4.7 1.3
6.0, 7.0, Mozilla 1.5


JScript creat de compania Microsoft

Prima versiune denumitã JScript 1.0, are câteva diferenþe faþã de JavaScript 1.0 ºi se gãseºte în browserul Microsoft Internet Explorer (MSIE) 3.01
Pe Windows 95/NT la unele variante de MSIE 3.02 (nu toate) este JScript 2.0 (cred cã vã daþi seama ce aiurealã este, unele variante cu versiunea JScript 1.0, altele, în aceeaºi versiune de MSIE cu JScript 2.0
Ca sã aflaþi ce versiune de JScript aveþi instalatã pe calculator, cãutaþi fiºierul jscript.dll ºi vedeþi în proprietãþile lui la tabul Version (clic dreapta pe fiºier - Properties - Version)
Pe Macintosh, MSIE 3.0 nu avea nici un fel de JScript, dar versiunea 3.01 are versiunea JScript 1.0, dar nu este identicã cu versiunea de pe Windows (de exemplu, versiunea pentru Mac tolera obiecte de tip imagine pentru crearea de rollover la trecerea cu mouse-ul, în timp ce JScript pentru Windows nu tolera acest lucru)
Dacã înca nu sunteti zãpacit, vedeþi în continuare ce le trece celor de la Microsoft prin cap:
MSIE 4.0 are JScript 3.0 echivalent într-o oarecare mãsurã cu JavaScript 1.2, iar MSIE 5.0 are JScript 5.0 aproximativ echivalentul lui JavaScript 1.5
Astfel Windows 2000 avea JScript 5.1, Windows ME cu JScript 5.5, iar Windows XP foloseste 5.6

MSIE Versiunea JScript
3.x / 1 1.0
3.x / 2 2.0
4.0 3.0
5.0 5.0
5.1 5.1
5.5 5.5
6.0 5.6


AOL

Probabil credeþi cã dat fiind faptul cã AOL este proprietarul lui Netscape ar trebui sã includã versiunile normale de JavaScript. Gresalã. Din motive contractuale, AOL foloseºte Microsoft Internet Explorer.

Versiunea AOL 16-bit PC 32-bit PC MAC
3.0 3.0 3.0 2.1
    3.01  
    3.02  
    4.01  
4.0 3.0 n/a 3.01
5.0   n/a 4.01


ECMAScript

În 1996, programatorii web au început sã se plângã cã Netscape ºi Microsoft mergeau în direcþii diferite. Nimãnui nu îi place sã scrie scripturi diferite pentru fiecare browser, ba chiar în limbaje diferite, aºa cã Netscape a înaintat specificaþiile limbajului JavaScript la un organism internaþional de standardizare numit ECMA. În iunie 1997, ECMA a produs un standard care se numeºte ECMA-262 (cunoscut ºi sub numele de ECMAScript). Standardul seamãnã destul de mult cu JavaScript 1.1 dar nu este identic.
Microsoft pretinde cã versiunile mai noi de 4.0, inclusiv, respectã standardul ECMAScript având în plus, câteva caracteristici patentate ºi specifice pentru MSIE. În teorie, dacã scrieþi cod compatibil standardului ECMAScript, acesta ar trebui sã ruleze la fel în MSIE 4.0+ ºi în Netscape Navigator 6.0+. În practicã, ar trebui sã testaþi pe diferite browsere, platforme ºi versiuni ca sã fiþi siguri.
În ce priveºte Netscape, se pare cã începând de la Netscape 6+ respectã 100% standardul ECMAScript.
Mozilla ºi derivatele sale sunt într-adevãr compatibile cu ECMAScript.
E bine de reþinut cã ECMA conduce acum procesul de standardizare al lui JavaScript ºi cã toþi creatorii de browsere încearcã sã facã implementãrile de JavaScript compatibile cu standardul ECMAScript.


Ce puteþi face cu JavaScript

JavaScript vã permite sã creaþi o interfaþã activã cu utilizatorul, sã dea o impresie vizualã plãcutã în timp ce navigaþi prin paginile site-ului. Puteþi verifica validitatea informaþiilor introduse într-un formular înainte ca datele sã fie trimise cãtre server. Puteþi face calcule matematice, crea pagini HTML dinamice, personalizate în funcþie de opþiunile utilizatorului sau al browserului. JavaScript controleazã browserul, ºi prin intermediul scripturilor puteþi deschide ferestre noi, puteþi afiºa mesaje de avertizare ºi puteþi pune mesaje în bara de stare a ferestrei browserului. Puteþi genera ceasuri, calendare ºi documente cu timpul înscris. Puteþi chiar verifica prezenþa plug-in-urilor în browser, ºi puteþi redirecta utilizatorul spre o paginã diferitã în cazul în care browserul nu are un anumit plug-in.
Aici trebuie sa fac o precizare, se pot detecta plug-in-urile în browserele Netscape Navigator 3.0 sau mai nou (pe orice sistem de operare) ºi în Internet Explorer 5.0 sau mai nou (doar pe platforma Macintosh)
O menþiune importantã: programele care ruleazã pe calculatorul utilizatorului sunt numite aplicaþii client-side (aflate pe partea de client), ºi programele care ruleaza pe server (inclusiv CGI-urile) sunt numite aplicaþii server-side (aflate pe partea de server)
Deoarece JavaScript ruleazã pe calculatorul dumneavoastra, i-au fost impuse o serie de limitãri, majoritatea din raþiuni de securitate, ºi anume:
- nu permite citirea sau scrierea de fiºiere pe calculatorul utilizatorului. Singura excepþie este permisiunea de  a scrie în directorul de cookie-uri al browserului, dar ºi aici sunt anumite limite.
- nu permite citirea/scrierea de fisiere pe server. Alternativa este sã rulaþi pe server un program care sã preia datele trimise de script ºi sã le scrie pe server (un CGI, scris într-un limbaj precum Perl sau PHP, sau un program Java.
- un script JavaScript nu poate închide o fereastrã de browser care nu a fost deschisã de el. Astfel se evitã situaþia când intraþi pe un site ºi vi se închid celelalte ferestre active care conþin alte site-uri...
- nu poate citi informaþii dintr-un browser care conþine o pagina web de pe un alt server, ca sã nu puteþi afla pe ce site-uri navigeazã utilizatorul.