Model de obiect document - Document Object Model

Model de obiect document
DOM-model.svg
Exemplu de ierarhie DOM într-un document HTML
Publicat pentru prima dată 1 octombrie 1998 ; Acum 23 de ani ( 01.01.1988 )
Ultima versiune DOM4
19 noiembrie 2015 ; acum 5 ani ( 19.11.2015 )
Organizare World Wide Web Consortium , WHATWG
Standarde de bază WHATWG DOM Standard de viață
W3C DOM4
Abreviere DOM

Modelul de obiect document ( DOM ) este o interfață multiplatăformă și independentă de limbă , care tratează un document XML sau HTML ca o structură de arbore în care fiecare nod este un obiect care reprezintă o parte a documentului. DOM reprezintă un document cu un arbore logic. Fiecare ramură a arborelui se termină într-un nod și fiecare nod conține obiecte. Metodele DOM permit accesul programatic la copac; cu ele se poate schimba structura, stilul sau conținutul unui document. Nodurile pot avea atașate manipulatoare de evenimente . Odată ce un eveniment este declanșat, gestionarii de evenimente sunt executați.

Principala standardizare a DOM a fost gestionată de World Wide Web Consortium (W3C), care a elaborat ultima o recomandare în 2004. WHATWG a preluat dezvoltarea standardului, publicându-l ca un document viu . W3C publică acum instantanee stabile ale standardului WHATWG.

Istorie

Istoria Modelului de obiecte document este împletită cu istoria „ războaielor browserului ” de la sfârșitul anilor 1990 între Netscape Navigator și Microsoft Internet Explorer , precum și cu cea a JavaScript și JScript , primele limbaje de scriptare care au fost implementate pe scară largă în Motoare JavaScript ale browserelor web .

JavaScript a fost lansat de Netscape Communications în 1995 în cadrul Netscape Navigator 2.0. Concurentul Netscape, Microsoft , a lansat Internet Explorer 3.0 anul următor cu o reimplementare a JavaScript numită JScript. JavaScript și JScript permit dezvoltatorilor web să creeze pagini web cu interactivitate client . Facilitățile limitate pentru detectarea evenimentelor generate de utilizatori și modificarea documentului HTML în prima generație a acestor limbaje au devenit în cele din urmă cunoscute sub denumirea de „DOM Level 0” sau „Legacy DOM”. Nu a fost dezvoltat niciun standard independent pentru nivelul DOM 0, dar a fost parțial descris în specificațiile pentru HTML 4 .

DOM vechi era limitat în ceea ce privește tipurile de elemente care puteau fi accesate. Elementele de formă , legătură și imagine pot fi referite cu un nume ierarhic care a început cu obiectul document rădăcină. Un nume ierarhic ar putea folosi fie numele, fie indexul secvențial al elementelor traversate. De exemplu, un element de introducere a formularului poate fi accesat fie ca document.formName.inputNamesau document.forms[0].elements[0].

Legacy DOM a permis validarea formularului în partea clientului și interactivitatea interfeței simple, cum ar fi crearea de sfaturi de instrumente .

În 1997, Netscape și Microsoft au lansat versiunea 4.0 a Netscape Navigator și, respectiv, Internet Explorer, adăugând suport pentru funcționalitatea Dynamic HTML (DHTML) care permite modificarea unui document HTML încărcat. DHTML a solicitat extensii la obiectul document rudimentar care era disponibil în implementările DOM Legacy. Deși implementările DOM Legacy erau în mare parte compatibile, deoarece JScript se baza pe JavaScript, extensiile DOM DHTML au fost dezvoltate în paralel de fiecare producător de browser și au rămas incompatibile. Aceste versiuni ale DOM au devenit cunoscute sub numele de „DOM intermediar”.

După standardizarea ECMAScript , grupul de lucru W3C DOM a început să elaboreze o specificație standard DOM. Specificația completată, cunoscută sub numele de „Nivelul 1 DOM”, a devenit o recomandare W3C la sfârșitul anului 1998. Până în 2005, părți mari din W3C DOM erau bine susținute de browserele comune ECMAScript, inclusiv Microsoft Internet Explorer versiunea 6 (din 2001), Browsere bazate pe Opera , Safari și Gecko (cum ar fi Mozilla , Firefox , SeaMonkey și Camino ).

Standarde

WHATWG DOM

Grupul de lucru W3C DOM și-a publicat recomandarea finală și ulterior s-a desființat în 2004. Eforturile de dezvoltare au migrat către WHATWG , care continuă să mențină un nivel de trai. În 2009, grupul de aplicații web a reorganizat activitățile DOM la W3C. În 2013, din cauza lipsei de progrese și a lansării iminente a HTML5 , specificația DOM Level 4 a fost reatribuită Grupului de lucru HTML pentru a accelera finalizarea acesteia. Între timp, în 2015, grupul de aplicații web a fost desființat, iar administrarea DOM a fost transmisă grupului de platforme web. Începând cu publicarea DOM Level 4 în 2015, W3C creează noi recomandări bazate pe instantanee ale standardului WHATWG.

  • Nivelul 1 DOM a furnizat un model complet pentru un întreg document HTML sau XML , inclusiv mijloacele de modificare a oricărei porțiuni din document.
  • DOM Level 2 a fost publicat la sfârșitul anului 2000. A introdus getElementByIdfuncția, precum și un model de eveniment și suport pentru spații de nume XML și CSS.
  • DOM Level 3, publicat în aprilie 2004, a adăugat suport pentru gestionarea evenimentelor XPath și tastatură , precum și o interfață pentru serializarea documentelor ca XML.
  • DOM Level 4 a fost publicat în 2015. Este un instantaneu al standardului de viață WHATWG.

Aplicații

Browsere web

Pentru a reda un document, cum ar fi o pagină HTML, majoritatea browserelor web utilizează un model intern similar cu DOM . Nodurile fiecărui document sunt organizate într-o structură de copac , numită arborele DOM , cu cel mai de sus nod numit „Document document”. Când o pagină HTML este redată în browsere, browserul descarcă codul HTML în memoria locală și îl analizează automat pentru a afișa pagina pe ecran. Cu toate acestea, DOM nu trebuie neapărat să fie reprezentat ca un copac, iar unele browsere au folosit alte modele interne.

JavaScript

Când o pagină web este încărcată, browserul creează un model de obiect document al paginii, care este o reprezentare orientată obiect a unui document HTML care acționează ca o interfață între JavaScript și documentul în sine. Acest lucru permite crearea de pagini web dinamice , deoarece într-o pagină JavaScript poate:

  • adăugați, modificați și eliminați oricare dintre elementele și atributele HTML
  • modificați oricare dintre stilurile CSS
  • reacționează la toate evenimentele existente
  • creați evenimente noi

Implementări

Deoarece DOM acceptă navigarea în orice direcție (de exemplu, părinte și frate anterior) și permite modificări arbitrare, o implementare trebuie să memoreze cel puțin documentul care a fost citit până acum (sau o formă analizată a acestuia).

Motoare de dispunere

Browserele web se bazează pe motoare de aspect pentru a analiza HTML într-un DOM. Unele motoare de aspect, cum ar fi Trident / MSHTML , sunt asociate în principal sau exclusiv cu un anumit browser, cum ar fi Internet Explorer. Altele, inclusiv Blink , WebKit și Gecko , sunt partajate de mai multe browsere, cum ar fi Google Chrome , Opera , Safari și Firefox . Diferitele motoare de aspect implementează standardele DOM la diferite grade de conformitate.

Biblioteci

Implementări DOM:

  • libxml2
  • MSXML
  • Xerces este o colecție de implementări DOM scrise în C ++, Java și Perl
  • xml.dom pentru Python
  • XML pentru <SCRIPT> este o implementare DOM bazată pe JavaScript
  • PHP.Gt DOM este o implementare DOM pe partea de server bazată pe libxml2 și aduce compatibilitatea DOM nivel 4 la limbajul de programare PHP
  • Domino este o implementare DOM pe partea de server (Node.js) bazată pe dom.js. Domino este utilizat în stiva MediaWiki cu Visual Editor.
  • SimpleHtmlDom este un model simplu de obiect document HTML în C #, care poate genera șir HTML programatic.

API-uri care expun implementările DOM:

  • JAXP (Java API for XML Processing) este un API pentru accesarea furnizorilor DOM
  • Lazarus ( Free Pascal IDE) conține două variante ale DOM - cu format UTF-8 și ANSI

Instrumente de inspecție:

Vezi si

Referințe

Referințe generale

linkuri externe