Aplicatiile de tip Client Side Script se refera in general la acele programe Web care ruleaza pe client (browser), dupa sau in timpul incarcarii pagini Web de catrea acesta. Limbajele de programare Client Side Script sunt acele limbaje care permit scrierea unor astfel de aplicatii. Aceste limbaje fie sunt integrate in limbajul HTML si suportate direct de catre browser (ex. JavaScript), fie necesita un plug-in extern (ex. ActionScript - Flash). In afara de utilizarea de limbaje de tip script, pentru implementarea aplicatiilor Client Side se pot utiliza si limbaje de programare (ex. Java prin Java Applet). Acest capitol se va concentra pe doua limbaje foarte raspandite si anume JavaScript si ActionScript.
4.1. Limbajul JavaScript
Limbajul JavaScipt (sau
ECMAScript) este un limbaj de tip script suportat de browserele
Web care poate fi integrat direct intr-o pagina HTML. Fata de alte limbaje el are cateva avantaje importante, cum ar
fi:
Cea mai importanta facilitate oferita de JavaScript
este aceea de a adauga dinamism si interactivitate
in paginile Web clasice. Un exemplu elocvent este oferit de Dave
Tau in pagina de prezentare a cartii JavaScript 3nd Ed.:
Elemente de limbaj
JavaScript
Limbajul JavaScript este case sensitive.
Declaratiile vor fi (optional) despartite de ";". La fel ca si in limbajul
C secventele de cod pot forma instructiuni compuse daca sunt plasate
intre acolade. Pentru comentarii poate fi utilizata sintaxa Java pentru
comentarii pe o singura linie (//) sau pe mai multe linii (/*...*/). Pentru
a include o secventa JavaScript intr-o pagina HTML se va folosi tagul
(>>> Ex
4.1 <<<):
<script type = "text/javascript">
// cod
JavaScript
</script>
Desi
majoritatea browserelor accepta si forma mai veche (<script language =
"JavaScript">) nu se recomanda folosirea acesteia.
Plasarea codului in pagina se poate face functie
de momentul in care dorim ca acesta sa ruleze. In sectiunea <head> se vor
scrie functiile apelabile la nevoie si cele declansate de evenimente. Codul
scris in sectiunea <body> se va executa in timpul incarcarii paginii in
browser. Pot exista oricate sectiuni de cod JavaScript atat in <head> cat
si in <body>. Pentru secvente lungi de cod sau pentru cod reutilizabil se
poate folosi includerea unui fisier JavaScript extern:
<script type="text/javascript"
src="fisierCod.js">
</script>
Variabile: variabilele
JavaScript sunt case sensitive. Varibilele nu au asociat un tip de date
de la declarare ci pot sa-si schimbe tipul functie de valoarea stocata. Numele
poate incepe cu o litera sau cu caracterul "_". Pentru declararea unor variabile
se va folosi constructia var.
Ex: var x=2, y;
Operatori:
Operator matematic |
Descriere | Examplu | Rezultat |
---|---|---|---|
+ | adunare | x=y+2 | x=7 |
- | scadere | x=y-2 | x=3 |
* | multiplicare | x=y*2 | x=10 |
/ | impartire | x=y/2 | x=2.5 |
% | modul (rest) | x=y%2 | x=1 |
++ | incrementare | x=++y | x=6 |
-- | decrementare | x=--y | x=4 |
Oparatorii de asignare (=, +=, -=, *=, /=, %=).
Operatorul de concatenare
siruri (+). Daca se concateneaza un sir cu un numar rezulta un sir.
Operator logic |
Descriere | Examplu |
---|---|---|
== | egal ca valoare | x==8 fals |
=== | egal si ca tip | x===5 adevarat x==="5" fals |
!= | diferit | x!=8 adevarat |
> | mai mare | x>8 fals |
< | mai mic | x<8 adevarat |
>= | mai mare sau egal | x>=8 fals |
<= | mai mic sau egal | x<=8 adevarat |
Operatorii logici (&&, ||, !).
Operatorul conditional
(var=condition?val1:val2).
Instructiuni
Ferestre de avertizare
alert("mesaj");
confirm("mesaj");
prompt("mesaj","valoare
implicita");
Functii Evenimente
Functiile sunt
secvente de cod care se executa fie prin apelarea explicita fie prin legarea de
un eveniment. De obicei functiile sunt plasate in sectiunea
<head>.
Functiile au un nume, o lista de parametrii de apel si un bloc
de cod. Daca codul functiei calculeaza o valoare atunci aceasta poate fi
returnata prin aplelul return val;.
function numeFunctie(var1,var2,...,varN)
{
codul
functiei
}
Pentru mai multe informatii consultati tutorialul de la
w3Schools.
Evenimentele
sunt actiuni care sunt detectate de catre browser si pot declansa executia unor
functii.
Evenimentele captate de JavaScript: onLoad, onUnload,
onFocus, onBlur, onChange, onSubmit,
onMouseOver, onMouseOut.
Ex:
function
verificSuma() {
if(document.getElementById("suma").value<0)
{
alert("Suma nu poate fi
negativa!");
document.getElementById("suma").value=0;
}
}
...
<input type="text" size="30" id="suma"
onchange="verificSuma()">
O lista cu evenimentele specifice
entitatilor javascript se gaseste la Elated.
Mecanisme de tratarea a
erorilor Obiecte
JavaScript
Pentru tratarea erorilor se pot folosi contructiile
try..cartch pentru captarea lor, respectiv throw pentru generarea lor. Mai multe
informatii gasiti la w3Schools - tratarea
erorilor.
JavaScript este un limbaj orientat pe obiecte.
Obiectele au proprietati si metode. Pentru crearea obiectelor se va folosi
operatorul new. Proprietatile obiectului pot fi create dinamic prin atribuirea
unor valori:
p=new Object();
p.nume =
"Ion";
p.varsta = 25;
Mai multe informatii gasiti la w3Schools - obiecte
JS.
4.2. Modelul DOM
(sursa: Wikymedia)
Exemplu de DOM:
Fiecare obiect definit de modelul DOM
are o serie de proprietati si metode prin care poate fi controlat:
4.3. Action Script
JavaScript
Tutorial" (w3Schools.com)
TutorialsFromWebknoledge
Free JavaScript
Editor
Limbajul
ActionScript(Adobe)
Tutorial
Flash(WebDevelopers)
TutorialCollection(CGTutorials)
ActionScript
Libraries
Scurt Istoric. Date Multimedia. Tehnologii specifice.
...
Cicluri de dezvoltare. Modele arhitecturale. Analiza cerintelor. Proiectarea
aplicatiei.
...
Implementarea interfetelor. Limbajele HTML, XHTML, CSS.
...
Limbajul JavaScript. Modelul DOM. Adobe Flash. Limbajul ActionScript.
...
Limbajul PHP. Generarea elementelor multimedia. Librariile GD si
PDFLib.
...
Structura unui document SMIL. Obiecte multimedia. Sincronizarea obiectelor multimedia. Legături. Unelte. ...
Tehnologii utilizate în dezvoltarea aplicatiilor de tip RIA. Tehnologia Ajax. Google Ajax API. Adobe Flex. Scalable Vector Graphics (SVG) ...
© 2009 conf.dr.ing. Dan Pescaru. All rights reserved