Il Document Object Model (DOM) è una specifica di un’interfaccia per l’accesso ai documenti HTML o XML. È definito dal World Wide Web Consortium.
Un’implementazione che soddisfa questa specifica consiste in un insieme di classi insieme ai loro metodi e attributi in termini di programmazione orientata agli oggetti. Consente ai programmi informatici di cambiare dinamicamente il contenuto, la struttura e il layout di un documento.
Designazione
Il termine „Document Object Model“ è in realtà un errore, poiché DOM non è definito come modello, ma come interfaccia per l’accesso ai dati definito ed è anche designato dal W3C. La formulazione della designazione, d’altra parte, sottolinea il modello di oggetto ben definito su cui si basa l’interfaccia, la cui validità è un prerequisito per la validità dell’interfaccia costruita su di essa. A un livello superiore di astrazione, un’interfaccia è anche un modello, vale a dire per il modo in cui gli oggetti o i dati sono accessibili.
Storia
Il DOM è stato originariamente creato sotto l’impressione di almeno due sviluppi che hanno significativamente plasmato il mondo del computer nel recente passato. Entrambi sono basati sulla necessità di poter accedere ai dati strutturati in documenti HTML e XML in modo semplice e uniforme.
A metà degli anni ’90, come il World Wide Web divenne sempre più popolare, il linguaggio di scripting JavaScript è stato inventato, e browser web popolari da allora hanno incluso interpreti che gestiscono tali script. JavaScript ha definito modi rudimentali per accedere al documento HTML e gestire gli eventi. Successivamente, diversi produttori di browser hanno inventato diversi modelli HTML dinamici (DHTML) che hanno permesso un cambiamento più completo nella struttura e l’aspetto del documento mentre il documento viene visualizzato nel browser. I primi standard DOM del W3C sono quindi tentativi di fondere, standardizzare e infine sostituire le varie tecniche di JavaScript proprietario e DHTML che sono emersi durante il periodo delle guerre del browser. Questo è riuscito, in modo che DOM oggi svolge un ruolo centrale nella programmazione JavaScript.
Allo stesso tempo, XML è emerso come un formato di scambio generale per la rappresentazione umana-leggibile dei dati strutturati, a seguito del successo di HTML. L’elaborazione dei documenti XML richiedeva un’interfaccia di programmazione comprensibile, potente e trasversale. Il DOM offre questo e definisce anche interfacce aggiuntive per una gestione confortevole dei documenti XML.
Fondamenti del DOM basati su un esempio
Il seguente codice HTML definisce una tabella con l’elemento tabella e vari sottoelementi:
>
>
>
< > Il primo nome
< > Nome
<
< >
>
>
> Donald
Traduzione:
<
>
< >
Trattamento di un documento
Nel primo passo, un documento esistente viene letto dal programma e viene generato un oggetto di documento. Sulla base di questo oggetto, il contenuto, la struttura e la presentazione possono essere accessibili utilizzando i metodi dell’API.
In particolare, DOM permette
navigazione tra i singoli nodi di un documento,
generare, muoversi e cancellare nodi; e
leggere, modificare ed eliminare il contenuto di testo.
Al termine del trattamento, un nuovo documento XML o HTML può essere generato dall’oggetto del documento mediante la cosiddetta serializzazione.
Standardizzazione del DOM
Il DOM è stato uno standard del W3C dal 1998 ed è stato aggiornato e ampliato più volte da allora. Ci sono diverse versioni (livelli) ciascuna con moduli diversi:
Livello 0
Questo livello non è mai stato formalmente specificato. Livello 0 si riferisce alle tecniche utilizzabili da JavaScript per accedere ai documenti HTML. Questi sono stati presentati da browser web come Internet Explorer e Netscape Navigator prima della standardizzazione del DOM.
Livello 1
DOM Core definisce il movimento nell’albero DOM, manipolando i nodi, incluso l’inserimento di nuovi elementi e attributi di impostazione.
DOM HTML è l’estensione per l’accesso ai documenti HTML. Standardizza e completa la pratica già comune in base alle specifiche JavaScript di Netscape e Microsoft JScript.
Livello 2
DOM Core: Include l’estensione del supporto namespace XML
DOM HTML: Estensione ai documenti XHTML, adattamento a DOM 2 Core
DOM Style e DOM CSS consentono la lettura dinamica, l’aggiunta e la modifica della formattazione o del layout del documento tramite fogli di stile, in particolare Cascading Style Sheets (CSS).
DOM Views consente l’accesso alle informazioni da tipi specifici di riproduzione del documento (ad esempio, la rappresentazione grafica nel browser web). Questo viene utilizzato principalmente insieme a DOM CSS per scoprire i valori di proprietà CSS effettivi di alcuni elementi (ad esempio, ‚Quale colore di sfondo è questa voce?‘).
DOM Events standardizza il trattamento degli eventi nel documento, come le azioni degli utenti. Utilizzato principalmente in connessione con JavaScript durante la visualizzazione di documenti HTML nei browser web. Sulla base dei modelli della gestione degli eventi del Netscape Navigator e di Internet Explorer per i documenti HTML.
DOM Traversal e DOM Range: Eseguire attraverso l’albero del nodo utilizzando determinati criteri di selezione, lavorare con aree nel documento che includono alcuni elementi e nodi di testo
Livello 3
DOM 3 Core: Miglioramento completo, inclusa la gestione e la gestione delle eccezioni migliorate
DOM 3 Load and Save consente la serializzazione di documenti o parti di documenti, nonché la parsing di documenti XML in stringhe in oggetti di documento. Inoltre, i documenti XML possono essere inviati e recuperati tramite HTTP, il più possibile con la più familiare tecnologia XMLHttpRequest.
DOM 3 XPath consente la selezione dei nodi in base alle espressioni XPath.
DOM 3 Eventi espande gli eventi DOM 2, inclusi gli eventi della tastiera.
La convalida DOM 3 consente di verificare se il documento DOM rimane valido dopo un cambiamento dinamico (add o remove nodes).
DOM 3 Views and Formatting consente di accedere dinamicamente e modificare il contenuto, la struttura e lo stile.
DOM 3 schemi astratti
