Specifikace Element Traversal od W3C je hotova. Co užitečného přináší a kdo ji implementuje?
Nálepky:
Cílem specifikace Element Traversal od W3C bylo alespoň trochu zjednodušit komplikované a neohrabané procházení dokumentu pomocí DOM rozhraní (které mj. právě kvůli jeho neohrabanosti přímo používá stále méně a méně vývojářů ve prospěch javascriptových frameworků).
Specifikace zavádí pět zajímavých atributů, např. element.firstElementChild
, který odkazuje na první dceřiný element (stávající atribut element.firstChild
tento účel spolehlivě neplní, protože pokud HTML/XML dokument obsahuje bílé znaky, může odkazovat na ně, místo na dceřiný element). Význam dalších atributů bude již zřejmý (jsou vždy obdobnou analogií některého stávajícího DOM atributu): lastElementChild
, previousElementSibling
, nextElementSibling
, childElementCount
.
Specifikace Element Traversal, která se řadí do DOM3, vyšla včera ve své finální verzi. V tuto chvíli ji podporuje připravovaný Firefox 3.1, Opera 9.5 a výše. Bohužel tato zjednodušující specifikace přišla příliš pozdě (mělo na ni být pamatováno již při prvotním návrhu DOM) a na implementace ve všech prohlížečích si vývojáři ještě chvíli počkají, DOM se proto ošklivé nálepky neohrabanosti jen tak nezbaví a prozatím bude snazší používat javascriptové frameworky nežli přímo DOM. (Zdroj: W3C)
DOMu se v prohlížečích bohužel už asi nikdy nezbavíme, i když je to asi nejhorší rozhraní pro práci s XML, jaké si lze představit.
Dost by pomohlo, kdyby se alespoň vytvořilo a sjednotilo API pro vyhodnocování XPath dotazů nad DOMem.
A proč myslet jenom na XML? Co běžný stránky v HTML, mnohdy zprasený, jak byste je teda chtěl procházet? Často se taky mluví o tom, že CSS a třeba třídy by se měly nahradit např. právě DOMem, aby se v elementech žádný class nepoužívalo. Jako DOM je někdy strašně těžkopádný a člověk porodí, než vymyslí jak to nejlíp a hlavně univerzálně udělat, takže nový věci v článku naznačený by měly bejt houšť, ale bez něj si jako jakejkoliv script nedovedu představit.
Prohlížeč si DOM vyrobí i z jakkoliv prasáckého HTML. Takže to co jsem psal o XML platí samozřejmě i pro HTML.