Dokumentobjektmodell

Innen datavitenskap er Document Object Model (ofte forkortet som DOM ), bokstavelig talt objektmodell av dokumentet , en form for representasjon av dokumenter strukturert som en objektorientert modell . Det er den offisielle W3C -standarden for representasjon av dokumenter strukturert for å være nøytral for både språk og plattform . Det er også grunnlaget for et bredt spekter av applikasjonsprogrammeringsgrensesnitt , noen av dem standardisert av W3C.

Historie

Historien til dokumentobjektmodellen er sammenvevd med historien til "nettleserkrigene" på slutten av 1990-tallet mellom Netscape Navigator og Microsoft Internet Explorer , så vel som med JavaScript og JScript , de første skriptspråkene som ble implementert bredt i JavaScript-motoren i nettleseren.

JavaScript ble utgitt av Netscape Communications i 1995 i Netscape Navigator 2.0. Netscapes konkurrent Microsoft slapp Internet Explorer 3.0 året etter med en re-implementering av JavaScript kalt JScript. JavaScript og JScript lar webutviklere lage nettsider med klientsideinteraktivitet . Den begrensede funksjonaliteten for å oppdage brukergenererte hendelser og redigere HTML-dokumentet i den første generasjonen av disse språkene ble kjent som "DOM Level 0" eller "Legacy DOM". Det er ikke utviklet noen uavhengig standard for DOM Level 0, men den er delvis beskrevet i spesifikasjonen for HTML 4.

Den eldre DOM var begrenset med hensyn til typene elementer den kunne få tilgang til. Du kan referere til skjema-, koblings- og bildeelementer med et hierarkisk navn som begynner med hoveddokumentobjektet. Et hierarkisk navn kan gjøre bruk av navnene eller den sekvensielle indeksen til elementene som krysses. Du kan for eksempel få tilgang til et skjemainndataelement som document.formName.inputNameeller document.forms[0].elements[0].

Den eldre DOM-en aktivert skjemavalidering på klientsiden og den populære "rollover"-effekten.

I 1997 ga Netscape og Microsoft ut versjon 4.0 av henholdsvis Netscape Navigator og Internet Explorer, og la til støtte for funksjonen Dynamic HTML (DHTML) som muliggjør endringer i et opplastet HTML-dokument. DHTML krevde utvidelser til det rudimentære dokumentobjektet som var tilgjengelig i eldre DOM-implementeringer. Selv om eldre DOM-implementeringer stort sett var kompatible siden JScript var basert på JavaScript, ble DHTML DOM-utvidelser utviklet parallelt av hver nettleserprodusent og forble inkompatible. Disse versjonene av DOM har blitt kjent som "mellomliggende DOM".

Etter standardiseringen av ECMAScript begynte W3C DOM Working Group å utarbeide en standard DOM-spesifikasjon. Den fullstendige spesifikasjonen, kjent som "DOM Level 1", ble en W3C-anbefaling på slutten av 1998. I 2005 ble mye av W3C DOM godt støttet av vanlige ECMAScript-aktiverte nettlesere, inkludert Microsoft Internet Explorer versjon 6 (siden 2001), Opera , Safari og Gecko (som Mozilla, Firefox, SeaMonkey og Camino).

Beskrivelse

DOM er naturlig støttet av nettlesere for å endre elementer i et HTML -dokument , og er en måte å dynamisk få tilgang til og oppdatere innholdet, strukturen og stilen til dokumenter. For de mange inkompatibilitetene på grunn av den forskjellige typen DOM-administrasjon av de forskjellige nettleserne, har W3C etablert standardspesifikasjoner.

DOM setter ingen begrensninger på datastrukturen til et dokument. DOM lar deg se et velformet dokument i form av et tre: de fleste XML-parsere (som Xerces ) og XSL -prosessorer (som Xalan ) er utviklet for å bruke trestrukturen. Denne implementeringen krever at hele innholdet i et dokument analyseres og lagres i minnet. DOM brukes hovedsakelig til å hente informasjon fra dokumenter med en ikke-standard struktur, det vil si hvor elementer må finnes tilfeldig. For XML -baserte applikasjoner som bruker en lese- og skriveprosess for parsing, utgjør DOM en stor sløsing med minne; for denne typen applikasjoner anbefales det å bruke SAX -modellen .

Nivåer

DOM-spesifikasjonene utviklet av W3C er delt inn i nivåer, som hver inneholder obligatoriske eller valgfrie moduler. For å hevde å tilhøre et visst "nivå", må en søknad oppfylle alle kravene på det nivået og lavere. Den nåværende DOM-spesifikasjonen er nivå 2 , men noen av nivå 3 -spesifikasjonene er nå allerede W3C-anbefalinger.

Nivå 0 inkluderer alt som er gitt til DOM for opprettelse av nivå 1, for eksempel : document.images,,, document.formsog . Merk at dette ikke er en konvensjonell spesifikasjon publisert av W3C, men gir snarere en referanse til det som eksisterte før standardiseringsprosessen.document.layersdocument.all Nivå 1 navigering av et DOM-dokument og innholdsmanipulering. Nivå 2 Støtte for XML -navnerom , filtrerte visninger og DOM-hendelser . Nivå 3 består av 6 forskjellige spesifikasjoner:
  1. kjernen i nivå 3;
  2. lasting og lagring av nivå 3;
  3. XPath på nivå 3;
  4. Nivå 3 visninger og formatering;
  5. Nivå 3 krav;
  6. Nivå 3-validering, som ytterligere forbedrer DOM.

Eksempel

Et klassisk eksempel på et DOM-tre er det som genereres av en nettleser i tolkningen av et HTML -dokument .

Følgende HTML-dokument:

<! - Mitt dokument -> < HTML > < HEAD > < TITLE > Mitt dokument </ TITLE > </ HEAD > < BODY > < H1 > Header </ H1 > < P > Avsnitt </ P > < P > Avsnitt </ P > </ BODY > </ HTML >

vil ha følgende DOM-tre:

Det skal bemerkes at også i dette eksemplet regnes de såkalte tomme tegnene (mellomrom, tabulatorer osv.) som elementer i treet, selv om disse ikke da vises av nettleseren (med mindre de er inne i en pre -tag ).

Relaterte elementer

  • DOM-inspektør
  • XHTML
  • Xerces

Spesifikasjoner

Andre prosjekter

Eksterne lenker