Document Object Model

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

DOM (akronym anglického Document Object Model - objektový model dokumentu) je objektově orientovaná reprezentace XML nebo HTML dokumentu. DOM je API umožňující přístup či modifikaci obsahu, struktury, nebo stylu dokumentu, či jeho částí.

Původně měl každý webový prohlížeč své vlastní specifické rozhraní k manipulaci s HTML elementy pomocí JavaScriptu. Vzájemná nekompatibilita těchto rozhraní však přivedla W3C k myšlence standardizace, a tak vznikl W3C Document Object Model (zkráceně W3C DOM). +more Tato specifikace je platformně a jazykově nezávislá. Předchozí specifická rozhraní byla nazvána přechodný DOM (anglicky Intermediate DOM).

DOM umožňuje přístup k dokumentu jako ke stromu, což je zároveň datová struktura používaná ve většině XML parserů (Xerces, MSXML) a XSL procesorů (Xalan). Tato technologie, nazývaná grove (Graph Representation Of property ValuEs), vyžaduje nahrání celého parsovaného dokumentu do paměti, z čehož plyne, že její optimální použití je tam, kde je k jednotlivým elementům dokumentu přistupováno v náhodném pořadí nebo opakovaně. +more Existuje i alternativní technologie pro případ, že je potřeba postupná, nebo jednorázová úprava - sekvenční model SAX, který má v těchto případech výhodu rychlejšího zpracování a nižší paměťové náročnosti.

Dějiny

Historie objektového modelu dokumentu se prolíná s historií „válek prohlížečů“ na konci 90. let mezi Netscape Navigator a Microsoft Internet Explorer a také s historií JavaScriptu a JScript, prvních skriptovacích jazyků, které byly široce implementovány v JavaScriptové enginy webových prohlížečů.

JavaScript byl uvolněn společností Netscape Communications v roce 1995 v rámci Netscape Navigator 2. +more Konkurent Netscape, Microsoft, následující rok vydal Internet Explorer 3. 0 s reimplementací JavaScriptu nazvanou JScript. JavaScript a JScript umožňují webovým vývojářům vytvářet webové stránky s interaktivitou na straně klienta. Omezené možnosti detekce událostí generovaných uživateli a úpravy dokumentu HTML v první generaci těchto jazyků se nakonec staly známými jako „DOM Level 0“ nebo „Starší DOM“. Pro DOM Level 0 nebyl vyvinut žádný nezávislý standard, ale byl částečně popsán ve specifikacích pro HTML 4.

Starší DOM byl omezen na druhy prvků, ke kterým bylo možné přistupovat. Na prvky formuláře, odkazu a obrázku lze odkazovat pomocí hierarchického názvu, který začíná objektem kořenového dokumentu. +more Hierarchický název může využívat buď názvy, nebo sekvenční index procházených prvků. Vstupní prvek formuláře může být například přístupný jako document. formName. inputName nebo document. forms[0]. elements[0].

DOM Level

Specifikace W3C DOM jsou rozděleny do několika úrovní (DOM level), z nichž každá obsahuje povinné a volitelné moduly. K tomu, aby nějaká aplikace mohla prohlásit, že podporuje určitý DOM level, musí implementovat všechny požadavky dané úrovně a všech nižších. +more Aplikace mohou též podporovat specifická rozšíření (anglicky vendor-specific extensions) za podmínky, že nejsou v konfliktu s W3C standardy. V současnosti (leden 2014) existují čtyři úrovně (#Level 1|Level 1, #Level 2|Level 2, #Level 3|Level 3 a #Level 4|Level 4), z nichž první tři jsou již ve stádiu W3C Recommendation.

Level 0

Podpora Intermediate DOM, jenž existoval před vytvořením DOM Level 1. Například DHTML Object Model vyvinutý firmou Microsoft, nebo nepojmenovaný Intermediate DOM od Netscape. +more Level 0 není formální specifikací publikovanou W3C, ale používá se jako srozumitelná zkratka odkazující na věci existující před standardizačním procesem.

Level 1

Navigace v DOMu (HTML a XML) dokumentu (resp. jeho stromové struktuře) a manipulace s obsahem (včetně přidávání elementů). Specifické elementy HTML jsou obsaženy také.

Level 2

Podpora jmenných prostorů (anglicky XML namespace), událostí a filtrovaných pohledů.

Level 3

Standardizovaný mechanismus načítání a ukládání a podpora XML schémat. Navíc umožňuje například dynamické vkládání obsahu do dokumentu a přidává některé nové metody a vlastnosti.

Level 4

Vývoj se zaměřuje na sloučení předchozích standardů [url=http://www. w3. +moreorg/TR/DOM-Level-3-Core/]DOM Level 3 Core[/url], [url=http://www. w3. org/TR/ElementTraversal/]Element Traversal[/url], [url=http://www. w3. org/TR/selectors-api2/]Selectors API Level 2[/url], [url=http://www. w3. org/TR/DOM-Level-3-Events/]DOM Level 3 Events[/url] a [url=http://www. w3. org/TR/DOM-Level-2-Traversal-Range/]DOM Level 2 Traversal and Range[/url] a jejich zjednodušení a přiblížení již existujícím standardům, především specifikacím JavaScriptu a HTML5. Specifikace dále zjednoduší časté DOM operace.

Specifikace

Všechny dokumenty jsou v angličtině

Level 1

[url=http://www.w3.org/TR/REC-DOM-Level-1/]Document Object Model (DOM) Level 1 Specification[/url] (W3C Recommendation)

Level 2

[url=http://www. w3. +moreorg/TR/DOM-Level-2-Core/]Document Object Model (DOM) Level 2 Core Specification[/url] (W3C Recommendation) * [url=http://www. w3. org/TR/DOM-Level-2-Views/]Document Object Model (DOM) Level 2 Views Specification[/url] (W3C Recommendation) * [url=http://www. w3. org/TR/DOM-Level-2-Events/]Document Object Model (DOM) Level 2 Events Specification[/url] (W3C Recommendation) * [url=http://www. w3. org/TR/DOM-Level-2-Style/]Document Object Model (DOM) Level 2 Style Specification[/url] (W3C Recommendation) * [url=http://www. w3. org/TR/DOM-Level-2-Traversal-Range/]Document Object Model (DOM) Level 2 Traversal and Range Specification[/url] (W3C Recommendation) * [url=http://www. w3. org/TR/DOM-Level-2-HTML/]Document Object Model (DOM) Level 2 HTML Specification[/url] (W3C Recommendation).

Level 3

[url=http://www. w3. +moreorg/TR/DOM-Level-3-Core/]Document Object Model (DOM) Level 3 Core Specification[/url] (W3C Recommendation) * [url=http://www. w3. org/TR/DOM-Level-3-LS/]Document Object Model (DOM) Level 3 Load and Save Specification[/url] (W3C Recommendation) * [url=http://www. w3. org/TR/DOM-Level-3-Val/]Document Object Model (DOM) Level 3 Validation Specification[/url] (W3C Recommendation).

Level 4

[url=http://www.w3.org/TR/dom/]W3C DOM4[/url] (W3C Last Call Working Draft)

Další (vývoj ukončen, nikdy nevydané)

[url=http://www. w3. +moreorg/TR/2000/WD-DOM-Level-1-20000929/]Document Object Model (DOM) Level 1 Specification (Second Edition)[/url] (W3C Working Draft) - převedeno na Level 2 * [url=http://www. w3. org/TR/DOM-Requirements/]Document Object Model (DOM) Requirements[/url] (W3C Working Group Note) * [url=http://www. w3. org/TR/DOM-Level-3-Views/]Document Object Model (DOM) Level 3 Views and Formatting Specification[/url] (W3C Working Group Note) * [url=http://www. w3. org/TR/DOM-Level-3-AS/]Document Object Model (DOM) Level 3 Abstract Schemas Specification[/url] (W3C Note) * [url=http://www. w3. org/TR/DOM-Level-3-Events/]Document Object Model (DOM) Level 3 Events Specification[/url] (W3C Working Draft) - převedeno na Level 4 * [url=http://www. w3. org/TR/DOM-Level-3-XPath/]Document Object Model (DOM) Level 3 XPath Specification[/url] (W3C Working Group Note).

Reference

Související články

HTML * SAX * XML * XPath * AJAX * JQuery

Externí odkazy

[url=http://www. w3. +moreorg/DOM/Overview]Stránky W3C o DOM[/url] * [url=http://www. w3. org/DOM/DOMTR]Přehled specifikací W3C[/url] * [url=http://www. w3. org/TR/dom/]Aktuální specifikace (Level 4)[/url] * [url=https://developer. mozilla. org/en-US/docs/DOM]Přehled o DOM na stránkách MDN[/url] * [url=http://www. w3. org/2003/02/06-dom-support. html]Podpora DOM v prohlížečích[/url].

Kategorie:HTML Kategorie:Rozhraní pro programování aplikací Kategorie:Standardy W3C Kategorie:World Wide Web

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top