Документен обектен модел

DOM (от английски Document Object Model – „Документен Обектен Модел“) – това е мулти-платформен и езиково независим приложно-програмен интерфейс, който позволява на програми и скриптове, да получат достъп до съдържанието на обекти в HTML, XHTML и XML-документи.

DOM не налага ограничения за структурата на документа. Всяка известна структура на документ с помощта на DOM може да бъде представена в дървовидна структура от взаимовръзки, всяка от която връзки представлява елемент, атрибут, текст, графика, или друг обект. Връзките са свързани помежду си в йерархия „родител-дете“.

История

История на DOM се преплита с историята на „войните на браузърите“ в края на 1990 година между Netscape Navigator, Microsoft Internet Explorer, и между първите скриптови езици JavaScript и JScript, които са широко използвани в оформлението на клиентската част на уеб браузърите.

DOM се е появил като спецификация, за да може JavaScript и Java програми да бъдат преносими за различни уеб браузъри.

Традиционен DOM

JavaScript е създаден от Netscape Communications през 1996 г. като част от Netscape Navigator 2.0. Конкурентът на Netscape – Microsoft пуска по-късно същата година Internet Explorer 3.0 с порт на JavaScript, наречен JScript. JavaScript и JScript позволяват на разработчиците да създават интерактивни уеб страници от страна на клиента. Ограничените възможности за откриване на създадените от потребителите събития и промяна на HTML документите в първото поколение на тези езици в крайна сметка става известено като „DOM Level 0“ или „традиционен DOM“. За DOM Level 0 няма разработен самостоятелен стандарт, но е бил частично описан в спецификацията на HTML4.

Традиционният DOM е ограничен във видовете елементи, които могат да бъдат достъпни. Такива елементи като форма (form), връзка (link) и изображение (image) могат да бъдат достъпни чрез използването на йерархични имена, които започват от корена на документният обект. Йерархичното име може да използва или името или последователните индекси на общият елемент. Например, въвеждане на форма може да бъде зададено като „document.formName.inputName“ или „document.forms [0] .elements [0].“

Традиционният DOM направи възможно да се потвърди, формата от страна на клиента и популярният ефект на „превръщането на обекта.“

Междинен DOM

През 1997 г., Netscape и Microsoft пуснаха Netscape Navigator, Internet Explorer 4.0, добавяйки поддръжка на Dynamic HTML (DHTML), който представлява възможност за промяна на функционалността на един HTML документ при неговото зареждане. На DHTML му трябвали разширения за елементарният обект document, които съществували в традиционният DOM при изпълнението му. Тъй като JScript е основан на JavaScript, изпълнението на традиционният DOM било до голяма степен съвместимо, но разширението на DOM за DHTML е разработено паралелно от всеки един от създателите на браузърите и остава несъвместимо. Тези версии на DOM стават известни като „междинен DOM“.

Междинният DOM давал възможност за манипулиране на свойствата на Cascading Style Sheets (CSS), оказвайки влияние на изобразяването на документа. Той също така предоставя достъп до нови свойства, наречени „пластове“, чрез свойство „document.layers“ (в Netscape Navigator) и „document.all“ (в Internet Explorer). Поради несъответствия в първоначалното развитие на междинният DOM разработването на уеб страници изисквало специална обработка за всеки отделен случай.

По-новите версии на Netscape Navigator спряха да поддържат междинен DOM. Internet Explorer продължава да поддържа междинният DOM за обратна съвместимост.

Стандартизация

Организацията World Wide Web Consortium (W3C), основана през 1994 г. за поддържането и развитието на отворените стандарти World Wide Web, принуждава Netscape Communications и Microsoft, заедно с други фирми, да разработят стандарт за браузърните скриптови езици, наречен ECMAScript. Първата версия на стандарта е публикувана през 1997 година. Следващите издания на JavaScript и JScript започват да прилагат стандарта ECMAScript за по-добра съвместимост в различните браузъри.

DOM Level 1 е предоставил пълен обектен модел за всички HTML- или XML-документ, включително начин за промяна на която и да е част от документа.

DOM Level 3 – текущата версия на спецификацията DOM, публикувана през април 2004 г., добавя поддръжка за XPath и обработка на събития произлезли от клавиатурата(keyboard event handling), както и интерфейс за сериализация на документ като XML.

През 2005 г. голяма част от W3C DOM се поддържа от основните браузъри, които отговарят ECMAScript, включително Internet Explorer версия 6 (2001), Opera, Safari и браузъри, базирани на Gecko (включително Mozilla Firefox, SeaMonkey и Camino).

Изпълнение на DOM в уеб браузъри

Следният HTML код дефинира една таблица с таблицата от елемент и различни под-елементи:

Така изглежда в браузъра:

Като се има предвид съществуването на различни DOM реализации в уеб браузърите, сред програмистите е разпространен навика да се проверява изпълнението на определени възможности на DOM за всеки браузър и след това да ги използват. Кодът по-долу показва начин, за проверка за стандарти поддържащи W3CDOM, преди да се пусне кода, зависещ от резултата на този тест.

Текущото ниво на спецификацията на DOM е Level 2, но все пак някои части на спецификацията на Level 3 се препоръчват от W3C.

Включва всички специфични модели DOM, които са съществували до появата на ниво 1, например, document.images, document.forms, document.layers и document.all. Необходимо е да се отбележи, че тези модели не са официалниспецификации DOM, публикувани от W3C, а по-скоро са информацията за това какво е съществувало преди процеса на стандартизация.

Основната функционалност на DOM (HTML и XML) документи, като например получаване дървовидна структура на документа, способността за променяне и добавяне на данни.

Подкрепа за т.нар. именни пространства XML <–filtered views–> <- филтрира гледки -> и събития.

Ниво 3

То се състои от шест различни характеристики:

Тези спецификации са допълнителни разширения DOM.

Приложение

Не се изисква уеб браузърите да използват DOM, за да изпълняват HTML-документи. Въпреки това, DOM се изисква за скриптове JavaScript, които желаят да наблюдават или да променяте уеб страница динамично. С други думи, Document Object Model – е инструмент, чрез който съдържанието на JavaScript вижда HTML-страницата и състоянието на браузъра.

Беше ли полезна тази статия?

Оцени я!

Среден рейтинг / 5. Брой гласове:

Ако намираш статията за полезна...

Последвай ни в социалните мрежи!

Съжаляваме, че тази статия не ти беше полезна!

Помогни ни да променим това!