Professional Documents
Culture Documents
52fovw3438371a0s WD VIII I Ix PDF
52fovw3438371a0s WD VIII I Ix PDF
WEB DIZAJN
-predavanje VIII klijentske i serverske skripte, JS
JavaScript uloga
JS je trea karika FRONT-END razvoja veb strane
1. HTML definie SADRAJ veb strane
2. CSS odreuje IZGLED veb strane
3. JavaScript odreuje (programira) PONAANJE
veb strane
istorijat JS
JavaScript je definisan 1995. godine od strane
Brendana Ajha (Brendan Eich) iz kompanije
NetScape i prvobitno ime je bilo LiveScript
meunarodna organizacija za standarde u
informacionim i komunikacionim sistemima
(European Computer Manufactures Association ECMA) standardizovala je JavaScript 1997. godine
pod nazivom ECMAscript
ECMAScript 2016 (jun 2016.) je najnovija
JavaScript verzija
3
poetna ideja
pokretaka ideja iz koje je proizaao JavaScript je
bila potreba za uvoenjem interaktivnosti u
HTML
Java
Kompajlira se na serveru pre
izvrenja kod klijenta
Objektno orjentisan
Apleti sadre objekte sastavljene
od klasa sa nasleem
Applet je izdvojen iz HTML-a
Tip
promenljive
mora
biti
deklarisan
Dinamika povezanost
Statika povezanost
Objektne reference proveravaju Objektne
reference
moraju
se u vreme izvravanja
postojati u vreme kompajliranja
10
serverske skripte
serverske skripte se izvravaju od strane veb servera ili
preko modula koji se dodaju veb serveru
najee koriene server - side tehnologije skriptnih
jezika su:
PHP
ASP/ASP.NET
JSP (Java Server Pages)
Koriste se jo i:
ColdFusion
PERL
Python
11
serverske skripte
skriptovi serverske strane se upotrebljavaju za:
client-side vs server-side
skripte klijentske strane imaju vei pristup
informacijama i funkcijama koje se nalaze na
klijentskim raunarima, dok skripte serverske strane
imaju vei pristup istim na serveru
13
mogunosti JS
omoguava interaktivnost veb stranicama - kada veb
strana treba da reaguje na korisnikovu interakciju (klik
miem) ili sistemski dogaaj (uitavanje stranice)
itanje i pisanje (promena sadraja) HTML elemenata
da izvri proveru validnosti podataka unetih u formu
pre predaje tih podataka serveru preprocesiranje
forme
(deo ovih funkcionalnosti je danas zamenjeno sa novim HTML5
elementima i tipovima inputa poput email, search, range, date,
time, number....)
14
mogunosti JS
prepoznavanje veb itaa (npr. testira ita da li ima
neophodne dodatke (plug-ins) za uitavanje traene
strane i, ako ih nema, JS usmerava korisnika na sajt
za preuzimanje)
kreiranje kolaia (cookies) -ita i upisuje vrednosti
cookies fajlova i dinamiki kreira HTML na osnovu
vrednosti kolaia
15
<script>
A. element<script>se moe nalaziti i u <head> i u <body>
sekciji HTML dokumenta, ali postoji razlika
kod definisan u elementu<script> u <body> sekciji se
kompajlira automatski prilikom uitavanja stranice
kod definisan u elementu <script> u <head> sekciji se
ne izvrava automatski, ve se poziva iz skripte u
<body> sekciji
B. kod skripte ne mora da se nalazi u HTML stranici, ve
moe da bude u eksternom dokumentu, a da se poziva iz
HTML dokumentu (ekstenzija .js)
JS u <body> sekciji
smetanje skripte na dno <body> sekcije
poboljava brzinu prikaza stranice, jer kompilacija
skripte usporava prikaz
17
eksterni JS (.js)
analogija sa CSS preporuka je da se koristi
eksterna skripta kada e se isti kod koristiti u
(velikom broju) razliitih veb stranica
analogija sa CSS u eksternom .js dokumentu
nema <script> tagova kao ni to u .css fajlu nema
<style> tagova
povezivanje sa eksterni .js dokumenti moe da
bude u body ili head sekciji (uobiajeno je to
<head> deo)
18
prednosti ekternog JS
razdvajanje HTML koda (sadraja) od JS koda
lake odravanje (menjanje, auriranje) i HTML i JS
dokumenata
keirani JS dokumenti mogu da ubrzaju uitavanje
stranice
jedna veb stranica moe biti povezana sa vie .js
dokumenata
<script src="myScript1.js"></script>
<script src="myScript2.js"></script>
19
20
21
22
23
24
parentNode
childNodes[nodenumber]
firstChild
lastChild
nextSibling
previousSibling
25
26
27
28
PRIMER
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
document objekat predstavlja celu veb stranicu i sadri sve ostale
objekte - da bi se pristupilo bilo kom elementu stranice, prvo se prisuta
document objektu
getElementById - metod za pristup elementu prema vrednosti id-a,
innerHTML - property moe da se iita ili promeni sadraj bilo koje
HTML elementa ukljuujui i <html> i<body>
29
kolekcije objekata
kolekcija
ta obuhvata
document.forms
document.head
document.images
document.body
document.cookie
document.doctype
document.title
document.links
document.readyState
document.scripts
document.lastModified
33
Uloga
element.setAttribute(attribute, value)
34
document.getElementById('placeholder').innerHTML = ' JS
pie ovaj sadraj! ';
<button type="button" onclick=
"document.getElementById(' placeholder ').innerHTML = 'JS
pie ovaj sadraj!'"> Click Me!</button>
35
primer
<!DOCTYPE html>
<html> <head></head>
<body>
<h1>JavaScript primer</h1>
<button type="button"
onclick=
"document.getElementById('placeholder').innerHTML = Date()">
36
PRIMER
<body>
<button type="button"
onclick="document.getElementById('placeholder').in
nerHTML = 'JS pie ovaj sadraj!'">promeni
tekst</button>
<p id="placeholder">placeholder tekst pre
poziva</p>
</body>
38
39
40
41
document.removeChild(element)
document.appendChild(element)
document.replaceChild(element)
document.write(text)
42
43
DOM animacije
var id = setInterval(frame, 5);
function frame() {
if (/* uslov za kraj animacije*/) {
clearInterval(id);
} else {
/* kod animacije*/
}
}
44
sistem dogaaja
JS omoguava da se veb stranica dinamiki menja
procesirajui dogaaje kreirane od strane korisnika
(korisniki dogaaji) ili sistema (sistemski
dogaaji)
svoro svaki HTML element moe imati atribute koji
slue za procesiranje dogaaja tzv. event-handler:
<ime_taga atribut_dogaaja=JS_funkcija(argumenti)">
npr. <body onload="ucitavanje()">
46
Atribut
onabort
onblur
onchange
onclick
ondblclick
onerror
onfocus
onkeydown
se pritisne taster
onkeypress
onkeyup
se otpusti taster
onload
Atribut
onmousedown
onmousemove
se mi pomera
onmouseout
onmouseover
onmouseup
onreset
onresize
onselect
je tekst selektovan
onsubmit
onunload
EventListener
element.addEventListener(event, function,
useCapture);
49
bubbling vs Capturing
here are two ways of event propagation in the HTML DOM,
bubbling and capturing.
Event propagation is a way of defining the element order when
an event occurs. If you have a <p> element inside a <div>
element, and the user clicks on the <p> element, which
element's "click" event should be handled first?
In bubbling the inner most element's event is handled first and
then the outer: the <p> element's click event is handled first,
then the <div> element's click event.
In capturing the outer most element's event is handled first and
then the inner: the <div> element's click event will be handled
first, then the <p> element's click event.
With the addEventListener() method you can specify the
propagation type by using the "useCapture" parameter:
50
element.removeEventListener("mousemove",
myFunction);
52
53
54
ispis
JavaScript nema ugraene funkcije za prikaz ili
tampu
ispis se moe kreirati u:
55
window.alert()
<script>
window.alert("Dobrodoli na na sajt!");
</script>
56
document.write()
<h1>JS ispis</h1>
<p>Primer sa document.write</p>
<script>
document.write("Dobrodoli na na sajt!");
</script>
57
document.write()
document.write() se retko upotrebljava zato to
e izbrisati kompletan sadraj stranice ako se
pozove nakon uitavanja stranice
obino se koristi samo za testiranje
<button type="button"
onclick="document.write('Dobrodoli na na
sajt!')">Klikni!</button>
58
JS sintaksa
JS kod predstavlja listu programskih instrukcija koje se
nazivaju naredbe
JS naredbe se razdvajaju separatorom (;)
JavaScript naredbe koriste:
vrednosti (fiksne vrednosti- literali i promenljivevarijable),
operatore
izraze
kljune rei
(i komentare koji ne utiu na izvravanje naredbe ve su
to kao hint programeru)
59
promenljive
promenljive ili varijable se koriste za skladitenje
vrednosti podataka
JS koristi var kljunu re za deklaraciju
promenljivih
znak jednakosti se koristi za dodelu vrednosti
promenljivoj
60
promenljive
varijable se deklariraju bez specifikacije tipa
podatka i tipovi podataka se konvertiraju jedan u
drugi tokom izvrsavanja(eng. loosely typed
lanaguage):
primer:
var a;
var b = 5;
var c = "Pera";
promenljive
nakon deklaracije, varijabla se moe inicijalizovati:
var x;
x = 5;
dodele: = += -= *= /= %=
y += 5;
y=y+5;
rezultat
x=7
x=3
x=1
x=6, y=6
x=5, y=6
x=4
isto kao
x=x+y
x=x-y
x=x*y
x=x/y
x=x%y
rezultat
x=5
x=15
x=5
x=50
x=2
x=0
relacioni operatori
relacioni: == === != < <= > >=
x = 5;
if (x == 5) document.write("x je jednako 5");
rezultat
x == 8 je netano (false)
x === 5 je tano (true)
x === "5" je netano (false)
x != 8 je tano (true)
x > 8 je netano (false)
x < 8 je tano (true)
x >= 8 je netano (false)
x <= 8 je tano (true)
logiki operatori
&& || !
rezultat logikih operatora je tano (true) ili
netano (false)
operandi logikih operatora su logiki izrazi
&&
||
0 0 1
0 1
1 1 1
1 0
0 1
primer
((x < 10) && (y > 1))
tano (true)
((x==5) || (y==5))
netano (false)
!(x==y)
tano (true)
kontrola toka
if else
switch
for
while
do while
break
continue
if else primer 1
if (poeni > 94)
ocena = 10;
else if (poeni > 84)
ocena = 9;
else if (poeni > 74)
ocena = 8;
else if (poeni > 64)
ocena = 7;
else if (poeni > 54)
ocena = 6;
else ocena = 5;
7
2/6
if else primer 2
<script>
var d = new Date();
var time = d.getHours();
if (time < 10)
{ document.write("Dobro jutro!"); }
else
{ document.write("Dobar dan!"); }
</script>
73
/61
uslovni operator
opta sintaksa
promenljiva=(uslov)?vrednost1:vrednost2
znaenje je isto kao i :
if (uslov)
promenljiva = vrednost1;
else
promenljiva = vrednost2;
primer: x = (y>3)?5:6;
switch
switch (a)
{
case 1:
case 2: i = j + 6;
break;
case 3: i = j + 14;
break;
default: i = j + 8;
}
switch
izraz u switch() izrazu mora da ima celobrojnu
vrednost
ako nema celobrojnu vrednost, ne moe da se
koristi switch(), ve if()!
ako se izostavi break; propae u sledei case
kod default izraza ne mora da se stavi break - to se
podrazumeva.
switch primer
var d=new Date(); theDay=d.getDay();
switch (theDay)
{
case 1: document.write(Ponedeljak"); break;
case 2: document.write(Utorak ");
break;
case 3: document.write("Sreda");
break;
case 4: document.write(Cetvrtak");
break;
case 5: document.write("Petak");
break;
case 6: document.write("Subota");
break;
case 0: document.write("Nedelja");
break;
default: document.write("Jos nije vikend!");
}
while
koristi se u sluaju cikline strukture kod koje se
zna uslov za prekid
telo ciklusa ne mora nijednom da se izvri
opta sintaksa:
while (uslov)
blok naredbi
Js_while.html
7
8/6
while primer
var i=0;
while (i<=10)
{
document.write("Trenutno je " + i);
document.write("<br />");
i=i+1;
}
7
9/6
do while
koristi se za ciklinu strukturu kod koje se zna uslov
za prekid
razlika u odnosu na while petlju je u tome to se
telo ciklusa izvrava makar jednom
opta sintaksa:
do
blok naredbi
while (uslov);
Primer
var i=0;
do
{
document.write("The number is " + i);
document.write("<br />");
i=i+1;
}
while (i<10);
for
Za organizaciju petlji kod kojih se unapred zna
koliko puta e se izvriti telo ciklusa.
Petlja sa poetnom vrednou, uslovom za kraj i
blokom za korekciju.
Opta sintaksa:
for (inicijalizacija; uslov; korekcija)
telo
for
Primer
var i=0;
for (i=0; i <= 10; i++)
{
document.write("The number is " + i);
document.write("<br />");
}
Js_loop*.html
8
5/6
Js_for_in.html
8
6/6
8
7/6
JS funkcije i dogaaji
JS funkcija predstavlja blok JS koda koji se izvrava
po pozivu
function myFunction() {
document.getElementById("demo").innerHTML = " ".;
}
88
funkcije
opta sintaksa:
function f(arg1, arg2) {
...
return vrednost;
}
8
9/6
Js_call_function*.html
ugraene funkcije
sistemske funkcije: