Concetti Fondamentali - Università della Basilicata

Transcript

Concetti Fondamentali - Università della Basilicata
26/04/2005
Tecnologie di Sviluppo per il Web
JavaScript
Concetti Fondamentali
versione 2.1
Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
(vedi ultima pagina)
G. Mecca – Università della Basilicata – [email protected]
JavaScript >> Sommario
Concetti Fondamentali
m Caratteristiche
del Linguaggio
m Struttura di uno Script
m Convalida dei Dati
G. Mecca - Tecnologie di Sviluppo per il Web
2
1
26/04/2005
JavaScript: Concetti Fondamentali >> Caratteristiche del Linguaggio
Caratteristiche del Linguaggio
m Caratteristiche
fondamentali
ðlinguaggio interpretato
ðlinguaggio debolmente tipato
ðlinguaggio “ibrido”
m Altri
linguaggi con caratteristiche simili
ðVBScript (ASP 3.0)
ðPHP
ðPerl
G. Mecca - Tecnologie di Sviluppo per il Web
3
JavaScript: Concetti Fondamentali >> Caratteristiche del Linguaggio
Caratteristiche del Linguaggio
m Linguaggio
interpretato
ðil codice non viene compilato
ðviene tipicamente immerso nel sorgente di
una pagina HTML
ðed eseguito da un interprete fornito a corredo
del browser sulla macchina client
ðprocesso di sviluppo e test accelerato
G. Mecca - Tecnologie di Sviluppo per il Web
4
2
26/04/2005
JavaScript: Concetti Fondamentali >> Caratteristiche del Linguaggio
Caratteristiche del Linguaggio
m Linguaggio
debolmente tipato
ðle variabili vengono dichiarate senza
specificarne il tipo
ðuna variabile è uno spazio nella memoria che
può contenere valori di qualsiasi tipo
ðil linguaggio effettua conversioni frequenti di
tipo per confrontare i valori nelle espressioni
m Esempio
ðvar x, y; x = 10; y = “10”; // x==y è vero
G. Mecca - Tecnologie di Sviluppo per il Web
5
JavaScript: Concetti Fondamentali >> Caratteristiche del Linguaggio
Caratteristiche del Linguaggio
m Linguaggio
“ibrido”
ðlinguaggio essenzialmente procedurale
ðcodice fatto di funzioni
ðlimitate funzionalità orientate agli oggetti
m Essenzialmente
ðè possibile utilizzare classi predefinite
ðcreare nuovi oggetti di queste classi
ðmanipolare oggetti esistenti chiamandone i
metodi
G. Mecca - Tecnologie di Sviluppo per il Web
6
3
26/04/2005
JavaScript: Concetti Fondamentali >> Caratteristiche del Linguaggio
Modello degli Oggetti sul Client
fonte: Netscape’s JavaScript Guide
G. Mecca - Tecnologie di Sviluppo per il Web
7
JavaScript: Concetti Fondamentali >> Caratteristiche del Linguaggio
Caratteristiche del Linguaggio
m In
generale
ðlinguaggio pensato per lo sviluppo rapido di
applicazioni di piccole dimensioni
m Ma
ðnon è scalabile ad applicazioni di grandi
dimensioni
ðfacile introdurre errori
ðdifficile produrre codice modulare e di qualità
G. Mecca - Tecnologie di Sviluppo per il Web
8
4
26/04/2005
JavaScript: Concetti Fondamentali >> Struttura di uno Script
Struttura di uno Script
m Contenuto
di uno script JavaScript
ðsequenza di istruzioni
ðdue diverse categorie di istruzioni
m Funzioni
ðsottoprogrammi ordinari
m Istruzioni
a livello globale
ðriportate al di fuori di qualsiasi funzione
9
G. Mecca - Tecnologie di Sviluppo per il Web
JavaScript: Concetti Fondamentali >> Struttura di uno Script
Struttura di uno Script
m Semantica
dell’elemento script
ðil browser scarica l’eventuale codice
sorgente se questo è esterno
ðil codice a livello “globale” viene eseguito
appena viene incontrato dal browser
ðle funzioni devono essere richiamate
esplicitamente (tipicamente da “gestori di
eventi”)
>> immagini.html
G. Mecca - Tecnologie di Sviluppo per il Web
10
5
26/04/2005
JavaScript: Concetti Fondamentali >> Struttura di uno Script
Struttura di uno Script
m Un
esempio: Indovina il numero
ðun’applicazione JavaScript per giocare a
indovina il numero
m Molte
delle caratteristiche tipiche
ðvarie form nella pagina, che vengono
utilizzate anche per i messaggi
ðalcune variabili globali
ðvarie funzioni scatenate da eventi >> indovina.html
>> indovina.js
G. Mecca - Tecnologie di Sviluppo per il Web
11
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
m Un’applicazione
tipica di JavaScript
ðverifica dei dati forniti dall’utente ad
un’applicazione Web
m Esempio:
pagamento del bollo in linea
ðcodice fiscale
ðtarga
ðcilindrata
ðadesione a termini contrattuali
G. Mecca - Tecnologie di Sviluppo per il Web
12
6
26/04/2005
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
m La
situazione tipica
ðc’è un’applicazione (codice sul server)
ðall’utente viene inviata una form da riempire
attraverso il browser
ðviene fornito codice JavaScript per la
convalida (codice sul client)
ðil codice JavaScript verifica la correttezza dei
dati forniti prima che i dati vengano sottoposti
all’applicazione Web sul server
13
G. Mecca - Tecnologie di Sviluppo per il Web
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
submit
submit
richiesta +
parametri
browser
Server
Rete
HTTP
errori
risposta
codice
JavaScript
<html>
<form>
</form>
</html>
pagina HTML con form
+ JavaScript
(codice sul client)
G. Mecca - Tecnologie di Sviluppo per il Web
applicazione Web
(codice sul server)
>> esempioConvalida.html
>> IIS http://localhost/sviluppoWeb
14
7
26/04/2005
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
m Semantica
dei gestori di eventi
ðvengono eseguiti in corrispondenza di azioni
opportune che scatenano l’evento
es: click su un’ancora
ðpossono restituire al browser un valore
booleano
ðse il valore è true, l’azione viene gestita
normalmente; es: richiesta di URI
ðse il valore è false, l’azione viene ignorata
G. Mecca - Tecnologie di Sviluppo per il Web
15
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
m Nel
caso delle form
ðil gestore di eventi onSubmit esegue il codice
JavaScript di convalida dei dati
ðse non ci sono errori, restituisce true ed il
contenuto della form viene regolarmente
sottomesso all’applicazione Web
ðse ci sono errori, restituisce false e la form
non viene sottomessa
G. Mecca - Tecnologie di Sviluppo per il Web
16
8
26/04/2005
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
m Esempio
ðusiamo una funzione JavaScript “verifica”
che controlla se i dati della form sono corretti
<h2>Esempio di Convalida con JavaScript</h2>
<form
method="post"
action="provaPost.asp"
onsubmit="return verifica()">
...
</form>
>> esempioConvalida.html
G. Mecca - Tecnologie di Sviluppo per il Web
17
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
m La
tecnica standard
ðsi utilizza una variabile globale “errori”
ðla funzione verifica chiama ulteriori funzioni,
ciascuna delle quali controlla un possibile
errore
ðse c’è un errore, ritorna false ed aggiunge un
messaggio alla variabile “errori”
G. Mecca - Tecnologie di Sviluppo per il Web
18
9
26/04/2005
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
>> esempioConvalida.html
>> Lynx http://localhost/corsi
m Attenzione
ðil meccanismo non è per niente affidabile
ðse il browser non supporta JavaScript, la
convalida non viene effettuata
ðal server arrivano dati scorretti
m Di
conseguenza
ðla convalida con JavaScript deve essere
vista come una funzionalità aggiuntiva,
utilizzabile solo da alcuni utenti
G. Mecca - Tecnologie di Sviluppo per il Web
19
JavaScript: Concetti Fondamentali >> Convalida dei Dati
Convalida dei Dati
m La
corretta metodologia di convalida
ðè sempre indispensabile convalidare i dati
dell’utente nell’applicazione Web sul server
ðin alcuni casi può essere utile effettuare la
convalida ANCHE sul client con JavaScript
m Vantaggi
ðl’interazione con l’utente è più immediata
ðsi riduce il numero di richieste errate al
server (riduzione dell’occupazione di banda)
G. Mecca - Tecnologie di Sviluppo per il Web
20
10
26/04/2005
JavaScript: Concetti Fondamentali >> Sommario
Riassumendo
m Caratteristiche
del Linguaggio
m Struttura di uno Script
m Convalida dei Dati
G. Mecca - Tecnologie di Sviluppo per il Web
21
Termini della Licenza
Termini della Licenza
m
This work is licensed under the Creative Commons AttributionShareAlike License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to
Creative Commons, 559 Nathan Abbott Way, Stanford, California
94305, USA.
m
Questo lavoro viene concesso in uso secondo i termini della
licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere
una copia della licenza, è possibile visitare
http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una
lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way,
Stanford, California 94305, USA.
G. Mecca - Tecnologie di Sviluppo per il Web
22
11