dagblog.
← Archiv

Poznáváme DOM III. — moduly a úrovně


V této části seriálu o specifikaci DOM se budeme zabývat
 rozdělením jednotlivých částí specifikace na moduly. Zároveň si povíme o jednotlivých 
 úrovních specifikace a jejích funkci.

Už při prvním návrhu specifikace DOM bylo patrné, že musí být
 navržen takový model specifikace, který by umožnil její další rozšíření. Na pořadu dne byla i otázka jak vyřešit implementaci
 na straně jedné a komplexnost specifikace na straně druhé. Rozumné řešení se našlo v podobě rozdělení jednotlivých
 částí na moduly, konkrétní implementace si pak krom povinného základního modulu může v rámci svého určení vybrat 
 další moduly, které bude pro svoje účely implementovat. Webové prohlížeče tak mohly sáhnout například po událostním modulu, naproti tomu pro serverovou
 implementaci by byl tento modul takřka zbytečný proto jej ignoruje.

DOM implementace může implementovat jeden(vždy Core modul) nebo více modulů
 v závislosti na svém použití. Následující obrázek obsahuje všechny DOM moduly
 reprezentované jejich jmény, obrázek obsahuje i moduly, které jsou specifikovány v rámci 
 Document Object Model (DOM) Level 3, který má v době psaní
 tohoto článku status W3C dokumentu Candidate Recommendation.

Všechny DOM moduly včetně DOM Level 3
Obrázek se nepodařilo načíst. Všechny DOM moduly včetně DOM Level 3
↗ Medium

První specifikace DOM(Level 1) přinesla Core(sada základních rozhraní), které bylo
 rozšířeno moduly XML a HTML. Následovalo další rozšíření specifikace DOM(level 2), která přinesla
 kromě drobného rozšíření Core a zároveň jeho ustanovení jako modulu, moduly úplně nové — Veiws, StyleSheets, CSS,
 CSS2, Events, UIEvents, MouseEvents, MutationEvents,
 HTMLEvents, Range a Traversal. Prozatim poslední specifikace DOM(level 3) přinesla 
 moduly TextEvents, KeybordEvents, MutationNameEvents, LS, LS-Async, DocumentLS,
 ElementLS, Validation a XPath.

Sada základních rozhraní, které v Level 2 vytvořily základní modul core, specifikuje rozhraní
 DOMImplementation 
 s metodou hasFeature(feature, version).
 Tato metoda umožňuje zjistit implementaci DOM modulu(feature) v určité verzi(version). DOMImplementation
 je atributem implementation rozhraní Document - Document.implementation. 
 Jednoduchým způsobem lze otestovat jestli je modul v příslušné úrovni implementován(ukázka v JavaScriptu).

isHtmlModul = document.implementation.hasFeature("HTML","1.0");

První argument vždy tvoří jméno modulu, v druhém argumentu určujeme verzi(1.0, 2.0, 3.0). Návratovou hodnotou
 je true|false - implementován|neimplementován. Podporované moduly vašeho prohlížeče lze
 zjistit na testovací stránce DOM implementace modulů.

To by bylo pro tento díl všechno, v příští části opustíme holou teorii a podíváme se již na konkrétní příklady 
 využití. Začneme modulem Core a budeme se zabývat rozhraním Document a 
 metodami pro procházení dokumentem.

Související články

Verze na Medium

Související články

Související epizody CZ Podcastu