Dokumentobjektmodell

Document Object Model (DOM) er en spesifikasjon av et grensesnitt for tilgang til HTML- eller XML-dokumenter. Det er definert av World Wide Web Consortium.

En implementasjon som oppfyller denne spesifikasjonen består av et sett klasser sammen med sine metoder og attributter i form av objektorientert programmering. Det gjør det mulig for datamaskinprogrammer å dynamisk endre innhold, struktur og layout av et dokument.

 

Designing

Begrepet „Dokument Object Model“ er faktisk en misnomer, siden DOM ikke er definert som en modell, men som et grensesnitt for den definerte datatilgang og er også betegnet av W3C. Ordlyden av betegnelsen understreker derimot den veldefinerte objektmodellen som grensesnittet er basert på, hvis gyldighet er en forutsetning for gyldigheten av grensesnittet bygget på den. På et høyere nivå av abstraksjon, er et grensesnitt også en modell, nemlig for måten objekter eller data er tilgjengelig.
Historie
DOM ble opprinnelig opprettet under inntrykk av minst to utviklinger som har betydelig formet dataverdenen i det siste. Begge er basert på behovet for å få tilgang til de strukturerte dataene i HTML og XML-dokumenter på en enkel og ensartet måte.
I midten av 1990-tallet, ettersom World Wide Web ble mer og mer populært, ble skriptspråket JavaScript oppfunnet, og populære nettlesere siden da har inkludert tolker som kjører slike skript. JavaScript definerte rudimentære måter å få tilgang til HTML-dokumentet og håndtere hendelser. Senere fant forskjellige nettleserprodusenter opp ulike dynamiske HTML-modeller som tillot en mer omfattende endring i strukturen og utseendet på dokumentet mens dokumentet vises i nettleseren. De første DOM-standardene til W3C er derfor forsøk på å slå sammen, standardisere og til slutt erstatte de ulike proprietære JavaScript- og DHTML-teknikkene som dukket opp i løpet av nettleserkrigene. Dette har lykkes, slik at DOM i dag spiller en sentral rolle i JavaScript programmering.

Samtidig dukket XML opp som et generelt utvekslingsformat for menneskelesbar representasjon av strukturerte data, etter suksessen til HTML. Behandling av XML-dokumenter krever et forståelig, kraftig og tverrspråklig programmeringsgrensesnitt. DOM tilbyr dette og definerer også ytterligere grensesnitt for komfortabel håndtering av XML-dokumenter.

 

Grunnleggende i DOM basert på et eksempel

Følgende HTML-kode definerer en tabell med tabellelementet og ulike underelementer:
<table>
  <thead>
    <tr>
      <th>Fornavn</th>
      <th>Name</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Donald</td>
      <td>Duck</td>
    </tr>
  </tbody>
</table>

 

Behandling av et dokument

I det første trinnet leses et eksisterende dokument i av programmet og et dokumentobjekt genereres. På grunnlag av dette objektet kan innholdet, strukturen og presentasjonen nås ved hjelp av metodene i API.
Særlig tillater DOM

navigasjon mellom individuelle noder i et dokument,
generere, bevege og slette noder; og
lese, endre og slette tekstinnhold.
Ved slutten av behandlingen kan et nytt XML- eller HTML-dokument genereres fra dokumentobjektet ved såkalt seriealisering.

 

Standardisering av DOM

DOM har vært standard for W3C siden 1998 og har blitt oppdatert og utvidet flere ganger siden. Det er flere versjoner (nivå) hver med ulike moduler:
DOM nivå 0
Dette nivået ble aldri formelt angitt. Nivå 0 refererer til JavaScript-brukbare teknikker for tilgang til HTML-dokumenter. Disse ble introdusert av nettlesere som Internet Explorer og Netscape Navigator før standardisering av DOM.

DOM nivå 1
DOM Kjerne definerer å bevege seg i DOM-treet, manipulere nodene, inkludert å sette inn nye elementer og sette attributter.
DOM HTML er utvidelsen for tilgang til HTML-dokumenter. Den standardiserer og fullfører allerede vanlig praksis basert på JavaScript-spesifikasjonene til Netscape og Microsoft JScript.
DOM nivå 2
DOM Core: Inkluderer utvidelse av XML navneområde støtte
DOM HTML: Utvidelse til XHTML-dokumenter, tilpasning til DOM 2 Core
DOM Stil og DOM CSS aktiverer dynamisk lesing, legger til og endre formatering eller layout av dokumentet via stilark, spesielt Cascading Style Sheets (CSS).
DOM-visninger gir tilgang til informasjon fra bestemte typer reproduksjon av dokumentet (for eksempel den grafiske representasjonen i nettleseren). Dette brukes hovedsakelig sammen med DOM CSS for å finne ut de faktiske CSS egenskapsverdier av visse elementer (for eksempel: \“Hva bakgrunnsfarge er denne overskriften?\“.
DOM hendelser standardiserer behandlingen av hendelser i dokumentet, for eksempel brukerhandlinger. Brukes primært i forbindelse med JavaScript når du viser HTML-dokumenter i nettlesere. Basert på modeller av arrangementshåndtering av Netscape Navigator og Internet Explorer for HTML-dokumenter.
DOM Traversal og DOM Range: Kjør gjennom nodetreet ved hjelp av visse utvalgskriterier, arbeid med områder i dokumentet som inkluderer visse elementer og tekstknuter
DOM nivå 3
DOM 3 Core: Total forbedring, inkludert forbedret unntakshåndtering og håndtering av tegnkoder
DOM 3 Last og lagre muliggjør seriealisering av dokumenter eller dokumentdeler, samt tolking av XML-dokumenter i strenger til dokumentobjekter. I tillegg kan XML-dokumenter sendes og hentes via HTTP, slik det er mulig med mer kjent XMLHttpRequest-teknologi.
DOM 3 XPath tillater nodevalg basert på XPath uttrykk.
DOM 3 Hendelser utvider DOM 2 hendelser, inkludert tastatur hendelser.
DOM 3 Validering lar deg sjekke om DOM-dokumentet forblir gyldig etter en dynamisk endring (legg til eller fjern noder).
DOM 3 Visninger og formatering gir deg tilgang til dynamisk og endre innhold, struktur og stil.
DOM 3 Abstrakte ordninger