PROGRAMMIAMO
JS - Broser Object Module (BOM)
Il BOM

Come abbiamo avuto modo di vedere ampiamente, il linguaggio Javascript è fortemente integrato con il browser in cui viene eseguito e con le pagine web in cui è inserito. Sebbene esistano differenti ambienti in cui è possibile l'esecuzione di script JS, possiamo senz'altro affermare che nella stragrande maggioranza dei casi JS viene eseguito in un browser ed è collegato con una pagina html.

Per tali ragioni gli script JS devono essere in grado di interagire sia con il browser (es. aprendo finestre secondarie, leggendo la cronologia di navigazione etc.) sia con gli elementi html presenti su una pagina (es. rispondendo alla pressione di un pulsante, visualizzando un risultato in una casella di testo etc.). In realtà nelle precedenti lezioni abbiamo ampiamente già utilizzato queste due caratteristiche (interazione col browser e interazione con la pagina html) usate dal JS.

Si noti che abbiamo scritto "caratteristiche usate dal JS" e non "caratteristiche del JS" in quanto non si tratta qui propriamente di istruzioni del linguaggio, ma di "elementi" esterni che JS utilizza e su cui si appoggia.

Infatti per interfacciarsi col funzionamento del browser e con gli elementi html della pagina, il JS usa, come si è detto, delle API messe a disposizione del browser stesso.

L'insieme delle API che consentono l'interazione col browser su cui viene visualizzata la pagina prendono il nome di BOM o Browswer Object Module o Browser Object Map. Viceversa l'interazione con gli elementi della pagina web (il documento) vengono gestiti tramite il DOM (Document Object Map) di cui parleremo più avannti.

Il BOM è in sostanza un modo per rappresentare il browser come un insieme di oggetti legati fra loro da una relazione genitore-figlio (parent-child) che può essere schematizzata nel seguente modo (struttura ad albero):

javascript object model

Si noti che document, history, screen, navigator e location sono tutte proprietà dell'oggetto window. Tali proprietà sono a loro volta degli oggetti (dotati quindi di proprietà/metodi), creando in tale modo una gerarchia di oggetti nested.

In generale si usa la notazione col punto per separare i diversi elementi di una catena di oggetti in un albero, per esempio:

window.location

Si osservi in particolare l'oggetto document, il quale rappresenta il documento (pagina html) correntemente caricato nella finestra del browser. Tale oggetto è importante in quanto costituisce la radice del DOM (Document Object Module) di cui parleremo ampiamente più avanti.

I limiti del BOM: problemi di standardizzazione

Il BOM è stato sviluppato fin dalla nascita di JS per fornire un collegamento fra il codice JS e il browser. Infatti la prima versione del BOM nasce addirittura con Netscape 2, il primo browser ad offrire un linguaggio di scripting (allora chiamato LiveScript) nel 1995.

Da allora il BOM ha naturalmente subito numerose evoluzioni, miglioramenti e modifiche. Il principale problema del BOM è la sua scarsa standardizzazione: non esiste nessuno standard riconosciuto internazionalmente per tutte le sue caratteristiche, le quali dipendono dal browser su cui sono implementate.

Nel seguito esamineremo alcune caratteristiche più usate del BOM (e sufficientemente standardizzate su browser diversi), in particolare per quanto riguarda la gestione di finestre di input/output e la temporizzazione.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it