g. mecca – università della basilicata – [email protected] tecnologie di sviluppo per il web...

55
G. Mecca – Università della Basilicata – G. Mecca – Università della Basilicata – [email protected] [email protected] Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Upload: santino-diana

Post on 01-May-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

G. Mecca – Università della Basilicata – [email protected] G. Mecca – Università della Basilicata – [email protected]

Tecnologie di Sviluppo per il Web

JavaScript

Concetti Fondamentali

versione 2.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

(vedi ultima pagina)

Page 2: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

2G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Concetti Fondamentali

Introduzione Storia di JavaScript I Problemi di JavaScript Il Modulo Form di XHTML Il Modulo Script di XHTML 1.0 Strict Il Modulo degli Eventi di XHTML Caratteristiche del Linguaggio Convalida dei Dati

JavaScript >> Sommario

Page 3: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

3G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Che cos’è JavaScript un linguaggio di programmazionepensato lo sviluppo di applicazioni Web

Come viene utilizzato normalmentecodice utilizzato per rendere dinamiche le

pagine HTMLpuò essere utilizzato per offrire servizi

interattivi attraverso pagine Web

JavaScript >> Concetti Fondamentali >> Introduzione

Page 4: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

4G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Leggende metropolitane su JavaScript JavaScript non è Java

inizialmente: LiveScriptoperazione di marketing della Netscape

JavaScript non è sempliceè un linguaggio di programmazione completosi tratta di una tecnologia complessa

JavaScript >> Concetti Fondamentali >> Introduzione

Page 5: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

5G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Esecuzione di JavaScript sul clientil codice è immerso nelle pagine HTMLviene eseguito a seguito di “eventi” scatenati

dall’utente (es: click del mouse)il codice viene eseguito dal browseril codice accede ad oggetti predefiniti che

rappresentano il contenuto della pagina (DOM), modificandone dinamicamente le proprietà ed il comportamento

JavaScript >> Concetti Fondamentali >> Introduzione

Page 6: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

6G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

JavaScript >> Concetti Fondamentali >> Introduzione

>> immagini.html>> indovina.html

ServerHTTP

richiesta (URI)

Rete

risposta(pagina)

<html>...

</html>

codiceJavaScript

browser

Page 7: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

7G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Storia di JavaScript

In realtàper capirlo è necessario vederne la storia

La storia di JavaScriptintrodotto dalla Netscape Netscape Navigator 2.0 (Client-Side JavaScript 1.0) successivamente 1.1, 1.2, 1.3 (Navigator 4.06)la Netscape lo vede come tecnologia strategica e

introduce Server Side JavaScriptla versione lato server non avrà molto successo

JavaScript >> Concetti Fondamentali >> Storia di JavaScript

Page 8: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

8G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Storia di JavaScript

La Microsoftdurante la guerra dei browser introduce la

sua versione, incompatibile con JavaScriptJScript 1.0 in Internet Explorer 3.0successivamente JScript 1.1anche la Microsoft ne introduce una versione

sul lato del server con ASP, in alternativa a VBScript

anche in questo caso con poco successo

JavaScript >> Concetti Fondamentali >> Storia di JavaScript

Page 9: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

9G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Storia di JavaScript

La standardizzazionenel tentativo di standardizzare il linguaggio, è

stato definito un nucleo comunesottoposto all’ECMAstandardizzato nel 2000

ECMA JavaScriptlinguaggio di programmazione neutroprevede pochi oggetti predefiniti (Array,

Date, Math)

JavaScript >> Concetti Fondamentali >> Storia di JavaScript

Page 10: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

10G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Storia di JavaScript

Estensioni dello standardClient Side JavaScriptServer Side JavaScriptentrambe includono ECMA JavaScript

Client Side JavaScriptaggiunge oggetti rilevanti per il browser (DOM della

pagina, finestra, menu, ecc.) Server Side JavaScript

aggiunge oggetti rilevanti per il server (database, sessioni ecc.)

JavaScript >> Concetti Fondamentali >> Storia di JavaScript

Page 11: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

11G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Storia di JavaScript

DHTMLcombinazione di CSS, JavaScript e

dell’implem. del DOM fornita dal browseranimazione degli elementi della paginaanalogo: GUI dei linguaggi di programmaz.

Implementazione del DOMinsieme di oggettiInfoSetaltri oggetti del browser (finestra, preferiti …)

JavaScript >> Concetti Fondamentali >> Storia di JavaScript

Page 12: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

12G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

I Problemi di JavaScript

Primo problemaincompatibilità delle versioni

Cause di incompatibilitàdiverse versioni del linguaggio sviluppate da

Netscape e Microsoftdiverse versioni dei browseralcuni browser (es: Lynx) non supportano JavaScript

per nulla In generale

non è possibile prevedere che tipo di supporto un generico browser offre per JavaScript

JavaScript >> Concetti Fondamentali >> I Problemi di JavaScript

Page 13: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

13G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Dynamic HTML (DHTML)CSS >> Dettagli e Approfondimenti >> I Problemi di JavaScript

Page 14: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

14G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

I Problemi di JavaScript

Secondo problemainsicurezza

Cause di insicurezzalinguaggio sul lato del clientcodice eseguito sulla macchina dell’utentecausa della diffusione di codice malevolo (virus)

In molti casiviene disabilitato dall’utente o seriamente limitato

nelle funzionalità

JavaScript >> Concetti Fondamentali >> I Problemi di JavaScript

Page 15: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

15G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

I Problemi di JavaScript

Di conseguenzaseri problemi di “accessibilità” (>>)

In questo corsoJavaScript non viene considerata una

tecnologia fondamentale per lo sviluppo Webne diamo una rapida panoramicaci concentriamo solo sulla versione lato clientci concentriamo su un utilizzo in particolare: la

convalida dei dati dell’utente

JavaScript >> Concetti Fondamentali >> I Problemi di JavaScript

Page 16: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

16G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caratteristiche del Linguaggio

Prima di entrare nel merito del linguaggioci servono alcuni elementi mancanti

In particolareci serve un modo per rendere interattive le

pagine HTML e raccogliere dati da elaborareci serve un modo per immergere il codice

JavaScript nel codice XHTMLci serve un modo per intercettare gli eventi

scatenati dall’utente sull’interfaccia

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

Page 17: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

17G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caratteristiche del Linguaggio

Nuovi moduli di XHMTLil modulo form (XHTML Basic): consente di rendere

interattive le pagine XHTMLil modulo script (XHTML 1.0 Strict): consente di

immergere codice eseguibile nell’XHTMLil modulo degli eventi (XHTML 1.0 Strict): consente

di intercettare eventi scatenati dall’utente Nota

gli script e gli eventi non fanno parte di XHTML Basic, che non prevede l’utilizzo di script sul client

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

Page 18: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

18G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

Maschera (“Form”)modulo per la raccolta di dati forniti

dall’utente (es: nome, cognome, targa) Utilizzo

serve nelle applicazioni interattivel’utente riempie la maschera“sottomette” la mascheraun’applicazione analizza i dati forniti

dall’utente, li elabora e fornisce la risposta

Page 19: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

19G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

Spazi per l’immissione dei dati“controlli” della form

Esistono controlli di vario tipoimmissione del testoimmissione di passwordscelte da elenchibottoni... >> form.html

Page 20: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

20G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

Elemento principale della mascheraelemento “form” – contiene i vari controllielemento a livello di bloccoattributo action (riferimento a URI); requiredattributo method (post o get); se manca è get

Esempio:<form action=“form.asp” method=“post”>

...

</form>

Page 21: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

21G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

Controllielementi in lineainput, select (option), textareaattributo name (nome del controllo)

Valore del controlloin alcuni casi specificabile dall’utentein altri casi prefissato e selezionabile

dall’utente

Page 22: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

22G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

elemento attributo modello di contenuto

form action (URI), method (“get” | “post”) …

(heading | block | list)*

- ma non altre form

input name, size (Number), type ("text"* | "password" | "checkbox" | "radio" | "submit" | "reset" | "hidden" ), value …

EMPTY

select name, size (Number), multiple (“multiple”)…

option+

option selected (“selected”), value … #PCDATA

textarea name, cols (Number), rows (Number) …

#PCDATA

label for (#PCDATA | inline)

Page 23: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

23G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

Attenzioneesistono due diversi moduli per le form

Modulo Basic Formsdi XHTML Basicè sufficiente per la maggior parte delle applicazioni

Modulo Formsdi XHTML 1.0 Strictprevede altri controllies: controllo di tipo “file”; serve per inviare file al

server

Page 24: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

24G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

Invio della formi valori specificati dall’utente sono inviati

all’URI (applicazione) corrispondente all’attributo “action”

insieme di coppie <nome>=<valore> separate da & e codificati (URI encoding)

Esempio: targa=AB123DE&utente=Mario%20Rossi

Page 25: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

25G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

Metodo di Inviometodo get: valori nella query string dell’URImetodo post: valori nel corpo della richiesta

HTTP In generale

per problemi di sicurezza (gli URI sono visibili) e di efficienza (gli URI non devono essere molto lunghi) è preferibile post

Page 26: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

26G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Basic Forms di XHTML

JavaScript >> Concetti Fondamentali >> Il Modulo Form

Attenzionele maschere sono uno strumento

fondamentale per le applicazioni Websia applicazioni sul lato client (JavaScript)sia sul lato server

Nel seguito della lezionestudieremo il loro utilizzo con JavaScript

Successivamente: lato server

Page 27: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

27G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Script di XHTML 1.0 Strict Immergere script in una pagina XHTML

il modulo di scripting di XHTML 1.0 Strict Due elementi

script: consente di specificare codice è un elemento in linea che può comparire nel

corpo oppure nella testa (head)noscript: consente di specificare contenuto

HTML per i browser che non sono in grado di eseguire il codice (compare nel corpo)

JavaScript >> Concetti Fondamentali >> Il Modulo Script di XHTML

Page 28: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

28G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Script di XHTML 1.0 Strict Attributi dell’elemento script

type: per specificare il Content-Typees: text/javascript

in precedenza: language (deprecato)src: il codice JavaScript può essere immerso

all’interno dell’elemento script oppure in un documento esterno di cui viene specificato l’URI

JavaScript >> Concetti Fondamentali >> Il Modulo Script di XHTML

elemento attributo modello di contenuto

script type, src (URI), …

#PCDATA

noscript ... (heading | block | list )+

Page 29: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

29G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Script di XHTML 1.0 Strict Contenuto dell’elemento script

istruzioni a livello “globale”dichiarazioni di funzioni

Semantica dell’elemento scriptil codice a livello “globale” viene eseguito

appena viene incontrato dal browserle funzioni devono essere richiamate

esplicitamente (tipicamente da “gestori di eventi” >>)

JavaScript >> Concetti Fondamentali >> Il Modulo Script di XHTML

Page 30: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

30G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Script di XHTML 1.0 Strict Nota

molto spesso il codice JavaScript è immerso in commenti HTML

Scoponascondere il codice ai browser che non

supportano JavaScripte che lo visualizzerebbero nella pagina

JavaScript >> Concetti Fondamentali >> Il Modulo Script di XHTML

>> immagini.html>> indovina.html

Page 31: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

31G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Eventi di XHTML 1.0 Strict Eventi

azioni dell’utente sull’interfaccia Esempi

eventi principali: selezione di un collegamento, selezione di un bottone

altri eventi: modifica di un controllo in una form, sorvolo del mouse, “messa a fuoco” da parte del mouse, perdita della messa a fuoco

JavaScript >> Concetti Fondamentali >> Il Modulo degli Eventi

Page 32: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

32G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Eventi di XHTML 1.0 Strict Programmazione basata su eventi

gli eventi possono avvenire in qualsiasi istante, sulla base delle azioni dell’utente

il sistema (browser) è in grado di intercettarli quando avvengono

il programmatore specifica “gestori di eventi”il sistema esegue il gestore di evento opportuno

Gestore di evento (“event handler”)blocco di codice da eseguire per gestire un certo

evento

JavaScript >> Concetti Fondamentali >> Il Modulo degli Eventi

Page 33: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

33G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Eventi di XHTML 1.0 Strict Nelle pagine Web

gli eventi possono essere gestiti dal clientoppure dal server

In questa lezionegestione da parte del clienti gestori di eventi sono scritti in JavaScriptvengono associati agli eventi attraverso

opportuni attributi

JavaScript >> Concetti Fondamentali >> Il Modulo degli Eventi

Page 34: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

34G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Eventi

JavaScript >> Concetti Fondamentali >> Il Modulo degli Eventi

>> immagini.html>> indovina.html

<html>...

</html>

codiceJavaScript

browser

click del mouse su un’ancora evento click

sottomissione form evento submit

gestore specificatoutilizzando l’attributoonsubmit per la formgestore specificatoutilizzando l’attributoonclick per l’ancora

cambiamentonella visualizzazione

...

Page 35: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

35G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Eventi di XHTML 1.0 Strict Principali attributi del modulo eventi

onclickonsubmit

Altri attributionchangeonmouseoveronfocus, onblur...

JavaScript >> Concetti Fondamentali >> Il Modulo degli Eventi

Page 36: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

36G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Eventi di XHTML 1.0 Strict onclick

attributo applicabile agli elementi a e agli input di tipo submit o reset (bottoni)

specifica il codice JavaScript da eseguire se il collegamento o il bottone viene schiacciato

onsubmitattributo applicabile all’elemento formspecifica il codice JavaScript da eseguire se

la maschera viene sottomessa

JavaScript >> Concetti Fondamentali >> Il Modulo degli Eventi

Page 37: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

37G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Il Modulo Eventi di XHTML 1.0 Strict Esempi<a href="javascript:void(0)“ <a href="javascript:void(0)“ onclick="selezionaXHTML()"onclick="selezionaXHTML()">>

Visualizza Immagine XHTML</a> Visualizza Immagine XHTML</a><a href="javascript:void(0)“ <a href="javascript:void(0)“ onclick="selezionaCSS()"onclick="selezionaCSS()">>

Visualizza Immagine CSS</a> Visualizza Immagine CSS</a> Esempi<form id="inizio" action="javascript:void(0)“ <form id="inizio" action="javascript:void(0)“

onsubmit="iniziaGioco()“ onsubmit="iniziaGioco()“ >><p>Inserisci il tuo nome: </p><p>Inserisci il tuo nome: </p><div><div> <input type="text" name="nome" /><input type="text" name="nome" /> <input type="submit" value="Inizia“ /><input type="submit" value="Inizia“ /></div></div></form></form>

JavaScript >> Concetti Fondamentali >> Il Modulo degli Eventi

Page 38: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

38G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caratteristiche del Linguaggio

Caratteristiche fondamentalilinguaggio interpretatolinguaggio debolmente tipatolinguaggio “ibrido”

Altri linguaggi con caratteristiche similiVBScript (ASP 3.0)PHP Perl

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

Page 39: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

39G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caratteristiche del Linguaggio

Linguaggio interpretatoil codice non viene compilatoviene tipicamente immerso nel sorgente di

una pagina HTMLed eseguito da un interprete fornito a

corredo del browser sulla macchina clientprocesso di sviluppo e test accelerato

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

Page 40: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

40G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caratteristiche del Linguaggio

Linguaggio debolmente tipatole variabili vengono dichiarate senza

specificarne il tipouna variabile è uno spazio nella memoria

che può contenere valori di qualsiasi tipoil linguaggio effettua conversioni frequenti di

tipo per confrontare i valori nelle espressioni Esempio

var x, y; x = 10; y = “10”;var x, y; x = 10; y = “10”; // x==y è vero

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

Page 41: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

41G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caratteristiche del Linguaggio

Linguaggio “ibrido”linguaggio essenzialmente proceduralecodice fatto di funzionilimitate funzionalità orientate agli oggetti

Essenzialmenteè possibile utilizzare classi predefinitecreare nuovi oggetti di queste classimanipolare oggetti esistenti chiamandone i

metodi

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

Page 42: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

42G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

Modello degli Oggetti sul Client

fonte: Netscape’s JavaScript Guide

Page 43: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

43G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caratteristiche del Linguaggio

In generalelinguaggio pensato per lo sviluppo rapido di

applicazioni di piccole dimensioni Ma

non è scalabile ad applicazioni di grandi dimensioni

facile introdurre erroridifficile produrre codice modulare e di qualità

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

Page 44: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

44G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caratteristiche del Linguaggio

Un esempio: Indovina il numeroun’applicazione JavaScript per giocare a

indovina il numero Molte delle caratteristiche tipiche

varie form nella pagina, che vengono utilizzate anche per i messaggi

alcune variabili globalivarie funzioni scatenate da eventi

JavaScript >> Concetti Fondamentali >> Caratteristiche del Linguaggio

>> indovina.html>> indovina.js

Page 45: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

45G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

Un’applicazione tipica di JavaScriptverifica dei dati forniti dall’utente ad

un’applicazione Web Esempio: pagamento del bollo in linea

codice fiscaletargacilindrataadesione a termini contrattuali

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

Page 46: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

46G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

La situazione tipicac’è 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

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

Page 47: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

47G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

ServerHTTP

richiesta + parametri

Rete

risposta

<html> <form>

</form></html>

codiceJavaScript

browser

applicazione Web(codice sul server)

pagina HTML con form+ JavaScript

(codice sul client)

submitsubmit

errori

>> esempioConvalida.html>> IIS http://localhost/corsi

Page 48: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

48G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

Semantica dei gestori di eventivengono eseguiti in corrispondenza di azioni

opportune che scatenano l’eventoes: 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

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

Page 49: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

49G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

Nel caso delle formil gestore di eventi onSubmit esegue il

codice JavaScript di convalida dei datise 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

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

Page 50: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

50G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

Esempiousiamo una funzione JavaScript “verifica”

che controlla se i dati della form sono corretti

<h2>Esempio di Convalida con JavaScript</h2><h2>Esempio di Convalida con JavaScript</h2>

<form <form method="post" method="post"

action="provaPost.asp" action="provaPost.asp"

onsubmit="onsubmit="return verifica()return verifica()">">

......

</form></form>

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

>> esempioConvalida.html

Page 51: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

51G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

La tecnica standardsi 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”

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

Page 52: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

52G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

Attenzioneil meccanismo non è per niente affidabilese il browser non supporta JavaScript, la

convalida non viene effettuataal server arrivano dati scorretti

Di conseguenzala convalida con JavaScript deve essere

vista come una funzionalità aggiuntiva, utilizzabile solo da alcuni utenti

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

>> esempioConvalida.html>> Lynx http://localhost/corsi

Page 53: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

53G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Convalida dei Dati

La corretta metodologia di convalidaè sempre indispensabile convalidare i dati

dell’utente nell’applicazione Web sul serverin alcuni casi può essere utile effettuare la

convalida ANCHE sul client con JavaScript Vantaggi

l’interazione con l’utente è più immediatasi riduce il numero di richieste errate al

server (riduzione dell’occupazione di banda)

JavaScript >> Concetti Fondamentali >> Convalida dei Dati

Page 54: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

54G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Riassumendo

Introduzione Storia di JavaScript I Problemi di JavaScript Il Modulo Script di XHTML 1.0 Strict Il Modulo Form di XHTML Caratteristiche del Linguaggio Convalida dei Dati

JavaScript >> Concetti Fondamentali >> Sommario

Page 55: G. Mecca – Università della Basilicata – mecca@unibas.it Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.0 Questo lavoro

55G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Termini della Licenza

Termini della Licenza

This work is licensed under the Creative Commons Attribution-ShareAlike 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.

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.