12. Applicazioni Web lato client
Nella PRIMA PARTE è stato descritto il linguaggio JavaScript di base;
ora procederemo con l'uso di JavaScript lato client.
JavaScript è il linguaggio di scripting più utilizzato per
per progettare applicazioni web
che girano all'interno del suo ambiente naturale,
e cioé il Browser Web.
L'oggetto Window
del Browser Web,
è l'elemento principale delle applicazioni lato client
e rappresenta sia la finestra del browser
sia l'oggetto globale
le cui proprietà e metodi sono utilizzabili dagli script
del linguaggio di programmazione JavaScript incorporati nella pagina web.
È possibile farvi riferimento con l'identificatore window
e rappresenta lo strumento di programmazione fondamentale
che consente di dotare le pagine web di dinamicità,
ossia di cambiarne il contenuto predefinito e statico
in relazione all'interazione dell'utente;
oppure in automatico a seguito di appositi eventi di sistema.
13. BOM (Modello a Oggetti del Browser)
Il Browser Object Model è un modello a oggetti,
privo di una specifica, esposto da un browser che consente
di interagire e interfacciarsi con esso e con lo schermo del computer.
Attraverso l'oggetto globale Window definisce un assortimento di proprietà e metodi
per la programmazione lato client.
Esso espone le funzionalità di un browser attraverso
la definizione di una gerarchia di oggetti:
window
,location
,screen
,document
,history
,navigator
.con proprietà e metodi per manipolare l'ambiente di esecuzione della pagina web.
L'immagine che segue raffigura quanto appena detto
L'oggetto window racchiude tutto l'ambiente del browser,
compresi i bordi della finestra, la pagina web e le azioni effettuate dagli utenti.
L'oggetto window è l'oggetto di primo livello.
Tramite window si può impostare manualmente:
- la visualizzazione delle barre del browser,
- aprire una nuova finestra,
- ridimensionarne una già aperta,
- chiuderla e così via.
quattro categorie:
- Creazione e gestione di nuove finestre.
- Temporizzazione.
- Manipolazione del comportamento di finestre esistenti.
- Accesso agli oggetti definiti nella gerarchia del BOM.
Alla prima categoria appartengono tre metodi
che forniscono un meccanismo per visualizzare facilmente
tre tipi di finestre di pop-up
e un quarto che permette di creare una finestra
completamente personalizzata.
L'oggetto
window
mette a disposizione i metodi:alert
,per visualizzare una piccola finestra contenente il messaggio fornito come argomento e un pulsante OK;
confirm
,per visualizzare una piccola finestra contenente il messaggio fornito come argomento con i pulsanti OK,
che se premuto fa ritornare al metodo il valore
true
,e
Cancel
, che se premuto fa ritornare al metodo il valore false
;prompt
,per visualizzare una piccola finestra contenente il messaggio fornito come primo argomento,
un campo di testo con un eventuale valore di default fornito come secondo argomento, un pulsante OK
che se premuto fa ritornare al metodo il valore del campo di testo e un pulsante Cancel
che se premuto fa ritornare al metodo il valore
null
.Tutti i metodi citati possono contenere come messaggio solo del testo semplice
senza alcuna formattazione e sono bloccanti,
ossia finché l'utente non preme il pulsante OK o Cancel
la sottostante pagina web non è utilizzabile.
È inoltre disponibile il metodo
showModalDialog
che permette di creare delle finestre di dialogo modali
più complesse e personalizzate di quelle create dai metodi prima citati.
Timer
I metodi setTimeout
e setInterval
come proprietà dell'oggetto window
consentono rispettivamente,
di invocare una funzione solo una volta e allo scadere di un determinato periodo temporale
e di invocare una funzione ripetutamente allo scadere di un determinato periodo temporale.
Finestre personalizzate
Ci sono molti buoni motivi per voler aprire una nuova finestra:
- per accedere a un sistema di help,
- per fornire un approfondimento su un certo tema,
- per verificare il contenuto di un carrello elettronico,
- per visualizzare un'animazione e così via.
Per aprire una nuova finestra e controllarne tutte le caratteristiche
usate il metodo open di windows.
Il metodo open
,
crea una nuova finestra e vi carica la pagina specificata da un URL,
e ha la segnatur
open(url, target, features, replace)
:
- il parametro url
specifica l'URL della pagina da caricare nella nuova finestra,
- il parametro target
indica il nome di una finestra dove caricare la pagina di cui il parametro url
,
- il parametro features
indica una serie di attributi:
(posizionamento, dimensione, barra di scorrimento e così via) che eventualmente la finestra deve possedere,
- il parametro replace
indica per una finestra già esistente e il cui nome è uguale a target
se il relativo URL deve essere sostituito (valore true
) o meno
(parametro assente o valore false
) dal nuovo URL nella cronologia di navigazione.
Alcuni dettagli:
- per il parametro url
,
se esso è assente allora la nuova finestra sarà caricata con una pagina vuota (about:blank
);
- per il parametro target
,
se esiste già una finestra con quel nome allora la pagina sarà ivi caricata
altrimenti sarà creata una finestra con il nome indicato,
mentre se non è indicato alcun nome la finestra
creata avrà lo speciale nome _blank
;
- per il parametro features
gli attributi indicabili non sono standard e per HTML5
sono da parte di un browser ignorabili;
inoltre per ragioni di sicurezza ogni browser include
per alcuni attributi delle restrizioni sul loro utilizzo.
- Infine, il metodo open
ritorna un riferimento all'oggetto window
che rappresenta la nuova finestra creata
o quella indicata dal parametro target
.
L'oggetto location
L'oggetto location, proprietà dell'oggetto window, rappresenta l'URL correntemente visualizzato nella barra degli indirizzi di un browser.Contiene informazioni sulla corrente URL completa.
E' un oggetto predefinito che costituisce una proprietà dell'oggetto window cui si
riferisce, ed è accessibile tramite tale proprietà della window. Se non è referenziata la
window di appartenenza, location si riferisce alla corrente finestra.
Tipi-Protocolli | DESCRIZIONE |
---|---|
javascript: | codice javascript. Es: javascript:back() |
Il protocollo javascript valuta l'espressione dopo i due punti | |
e, se ve ne è una carica la pagina definita dall'espressione. Se | |
l'espressione è indefinita (ad esempio javascript:void(0)) non | |
carica nulla. | |
http: | www. Es: http://arcaonline.cjb.net |
ftp: | file protocol transfert. Es. |
ftp://spazioweb.it/arcaonline/downloads | |
file: | file locali. Es: file:///c:/javascript/motore.php |
mailto: | mailing. Es: maito:arcadp@neomedia.it |
news: | news. Es: news://news.pippo.com/comp.lang.delphi |
LOCATION: PROPRIETÀ Le proprietà dell'oggetto location riflettono le parti della URL La struttura della URL completa è:protocol//host:port/pathname#hash?search protocollo//dominio:porta/percorso#ancora?query
Le seguenti proprietà sono stringhe che riflettono le relative parti della URL.hash
la stringa comincia con un cancelletto (#)host
hostname
è la combinazione del dominio e della porta (host + port)href
contiene l'intera URLpathname
port
protocol
search
la stringa comincia con un punto interrogativo (?).
LOCATION: METODIreload([forza])
Ricarica la pagina corrente. Se viene usato il parametro booleano forza passando il valore true, viene forzato il caricamento della pagina dal server anziché dalla cache (normalmente di default non ricarica la pagina dal server).replace(URL)
Carica la URL sovrascrivendo la corrente voce dell'history. Per cui l'utente non può ricaricare la URL precedente con il tasto back.
L'oggetto screen
L'oggetto screen
,
proprietà dell'oggetto window
,
rappresenta lo schermo del computer dove sta girando l'attuale browser.
Esso mette a disposizione le seguenti proprietà,
che sono generalmente usate per ottimizzare o adeguare l'output di una pagina web a seconda della risoluzione e della quantità di colori correntemente in uso.
availHeight
:
ritorna l'altezza disponibile in pixel dell'area dello schermo meno l'eventuale spazio verticale occupato da elementi del desktop del sistema operativo in uso come, per esempio, quello riempito da una barra delle applicazioni.availWidth
:
ritorna la larghezza disponibile in pixel dell'area dello schermo meno l'eventuale spazio orizzontale occupato da elementi del desktop del sistema operativo in uso.height
:
ritorna l'altezza totale in pixel dell'area dello schermo.width
:
ritorna la larghezza totale in pixel dell'area dello schermo.colorDepth
:
ritorna la profondità di colore dello schermo.
L'oggetto document
L'oggetto document
,
proprietà dell'oggetto window
,
rappresenta la porta di accesso principale al documento di una pagina web
inserito nella relativa finestra e agli elementi ivi contenuti.
Esso, a parte le proprietà che
saranno trattate quando parleremo del Document Object Model (DOM),
ha anche altre proprietà.
body
: ritorna l'elementobody
.characterSet
: ritorna una stringa contenente l'encoding di caratteri usati.cookie
: permette di gestire in lettura e in scrittura i cookie.defaultView
: ritorna l'oggettowindow
associato.designMode
: consente tramite il valore"on"
di rendere o meno (valore"off"
) l'intero documento editabile.doctype
: ritorna l'elementoDOCTYPE
.documentElement
: ritorna l'elementohtml
.domain
: ritorna o imposta la parte host name dell'URL da cui deriva il corrente documento.forms
: ritorna una collezione di tutti gli elementiform
presenti nel documento.images
: ritorna una collezione di tutti gli elementiimg
presenti nel documento.links
: ritorna una collezione di tutti gli elementia
earea
presenti nel documento con l'attributohref
impostato.referrer
: ritorna una stringa contenente l'URL della pagina da cui si è avuto accesso alla pagina che contiene il corrente documento.scripts
: ritorna una collezione di tutti gli elementi script del corrente documento.styleSheets
: ritorna una collezione di tutti gli elementi che hanno incluso dei fogli di stile nel corrente documento (elementistyle
elink
).title
: ritorna o imposta il titolo di un documento così come specificato dall'elementotitle
.
Oggetto History
E' sostanzialmente un array i cui elementi contengono le URL visitate in quella finestra del browser.Gli elementi sono creati nell'ordine di accesso, per cui history[0] contiene la prima URL visitata e
history[history.lenght]
contiene l'ultima.
HISTORY: PROPRIETÀcurrent
stringa contenente la URL correntelenght
il numero degli elementi dell'array history (partendo da zero).next
stringa contenente la URL successiva a quella corrente, se questa non è l'ultima.previous
stringa contenente la URL precedente a quella corrente, se questa non è la prima HISTORY: METODIback()
carica la URL precedente. Equivale ad history.go(-1).forward()
carica la URL successiva. Equivale ad history.go(1).go(numero | stringa)
se il parametro fornito è un numero (intero, positivo o negativo) carica la URL che è posta nell'elemento precedente (negativo) o seguente quello corrente del numero di posti specificato. Se il parametro è stringa, tale stringa deve contenere la URL nella lista o parte di essa. Carica la URL posizionata nell'elemento più vicino a quello corrente che contiene quanto specificato nella stringa.
Oggetto Navigator
L'oggetto navigator
, proprietà dell'oggetto window
, consente di ottenere informazioni,
attraverso le sue proprietà e metodi, in merito al browser in uso più altre supplementari.
appName
:
ritorna come stringa il nome completo del browser corrente, come Netscape per Firefox, Opera per Opera e così via.appVersion
:
ritorna una stringa dettagliata del nome del browser, del produttore, del numero di versione, del sistema operativo in uso e così via.userAgent
:
ritorna una stringa dettagliata con delle informazioni come quelle riportate daappVersion
più altre addizionali. Generalmente è la stessa stringa che il browser invia come intestazione di una richiesta HTTP (campoUser-Agent
).platform
:
ritorna una stringa che identifica il sistema operativo in uso.onLine
:
ritorna un valore booleano indicante se il browser è correntemente connesso a una rete.geolocation
: ritorna un oggetto che fornisce delle API con cui si possono utilizzare dei servizi per la geolocalizzazione.javaEnabled()
:
ritorna un valore booleano indicante se il browser può eseguire le applet Java.cookieEnabled
:
ritorna un valore booleano indicante se il browser può memorizzare dei cookie.