1 - Introduzione
Che cosa è Javascript
Javascript è un linguaggio di scripting lato client contenuto all’interno delle pagine HTML e viene interpretato dal browser.
Il fatto che sia un linguaggio di scripting implica che il codice Javascript compare direttamente dentro la pagina HTML delimitato da appositi tag. Con altri linguaggi di programmazione invece (come il C, il C++ e Java) si scrive un sorgente poi lo si sottopone ad un compilatore che produce un file binario "compilato" ed eseguibile dal sistema operativo: il sorgente non è più visibile. Tutti i programmi di Windows ad esempio sono dei file compilati, in cui non c'è più traccia della sintassi originaria del linguaggio (cioè dei "sorgenti").
Javascript non è compilato ma bensì interpretato: non esiste nessun compilatore; è direttamente il browser, tramite un apposito motore di scripting (cioè di visualizzazione), che legge il codice Javascript e lo esegue passo per passo.
L’altra peculiarità di Javascript (che da ora in poi chiameremo anche JS) è di essere un linguaggio lato-client. Per spiegare questa affermazione è necessario ricordare che il web funziona su due livelli:
- Le pagine web vengono inviate all'utente da un web server, cioè da un programma che si trova su un computer remoto, e che per lo più non fa nient'altro che inviare le pagine a chi ne fa richiesta.
- L'utente da casa visualizza sul proprio browser le pagine che gli sono stato inviate. Un "browser" è un programma che permette di leggere le pagine scritte in linguaggio HTML: si tratta di "Internet Explorer", "Netscape Navigator", "Opera" e altri.
Quando visualizziamo le nostre pagine web da casa ci sono dunque due computer che si parlano: il server e il client.
Alcuni linguaggi di scripting (asp, php, perl) vengono eseguiti dal web server (si chiamano appunto linguaggi server side o lato server). Javascript , invece, viene eseguito sul nostro computer dal browser (è un linguaggio client side o lato client). Dire che Javascript è un linguaggio lato client, significa anche che gli script avranno validità all'interno delle singole pagine web, e non da una pagina all'altra.
Perchè usare Javascript
Le pagine web scritte in HTML sono caratterizzate da una totale staticità e immobilità. Nonostante possano essere generate dinamicamente sul server a partire da una qualche fonte di dati tramite uno script CGI (o simili), una volta arrivate al browser possiamo scorrerle, visionarle, copiarne il contenuto da un’altra parte ma niente più.
Gli script Javascript possono rispondere all’input dell’utente e svolgere moltissimi compiti senza che vi sia alcun traffico di dati sulla rete. Questo consente di realizzare delle pagine Web realmente interattive e veloci.
JS nasce proprio per soddisfare una certa esigenza di interattività nelle pagine HTML visualizzate dal browser del client e permette di “dare vita” alle pagine stesse in modo da renderle più divertenti e attrattive.
JS ha un ruolo ancora più importante nelle applicazioni web (vere e proprie applicazioni che risiedono sul server ma utilizzano il browser come interfaccia utente, es. ebay.com) dove è ormai universalmente utilizzato.
Qualunque sia lo scopo, serio o meno serio, si può tranquillamente affermare che Javascript è un linguaggio completo e che permette di realizzare delle vere e proprie piccole applicazioni anche se limitate a funzionare dentro il browser.
Ecco alcuni tipici utilizzi di JS:
- Effetti di roll-over per i bottoni: quando si passa sopra un bottone grafico questo cambia aspetto.
- Esecuzione di azioni "a tempo" ("dopo 5 secondi vai a quella pagina")
- Aggiungere effetti "dinamici" (oggetti che si muovono in giro per la pagina, ma anche "menu a discesa", "menu a comparsa", ecc)
- Gestione di finestre secondarie. JS permette l’apertura e la gestione automatica di più finestre secondarie rispetto alla finestra principale del sito.
- Gestione XML. Di recente è stata introdotta la possibilità di interpretare e gestire piccole basi dati XML.
- Assistenza all’input. Es. inserimento di una data tramite un piccolo calendario che compare a richiesta.
- Validazione dell' input. Contro che i dati inseriti in una form (es. invio di un bonifico in una applicazione di home banking) siano corretti prima che essi vengano spediti al server.
- Siti didattici interattivi. Ad es. pagine dove viene spiegato un fenomeno fisico con la possibilità anche di calcolare alcuni parametri a partire dai dati inseriti dall’utente.
- Piccole applicazioni. Es. programma per il calcolo degli interessi bancari.
Purtroppo sono stati realizzati anche alcuni virus in JS che però sfruttavano le vulnerabilità del browser Internet Explorer. Quando il browser è privo di tali vulnerabilità il linguaggio JS è per definizione innocuo; non può accedere alle strutture dati critiche del sistema operativo e dunque non può replicarsi o causare danni.
Per avere un’idea di cosa si può materialmente fare con JavaScript visitare i seguenti siti:
sito http://www.honto.com/jscript, http://www.js-examples.com/