Пример DOM иерархия в документе HTML | |
Впервые опубликовано | 1 октября 1998 г.; 22 года назад (1998-10-01) |
---|---|
Последняя версия | DOM4. 19 ноября 2015 г.; 4 года назад (19.11.2015) |
Организация | Консорциум World Wide Web, WHATWG |
Базовые стандарты | WHATWG DOM Living Standard. W3C DOM4 |
Аббревиатура | DOM |
Объектная модель документа (DOM ) - это кроссплатформенный и независимый от языка интерфейс, который обрабатывает документ XML или HTML как древовидную структуру, в которой каждый узел является объектом, представляющим часть документа. DOM представляет собой документ с логическим деревом. Каждая ветвь дерева заканчивается узлом, и каждый узел содержит объекты. Методы DOM обеспечивают программный доступ к дереву; с их помощью можно изменить структуру, стиль или содержание документа. К узлам могут быть прикреплены обработчики событий. Как только событие запускается, обработчики событий запускаются.
Основная стандартизация модели DOM проводилась Консорциумом World Wide Web, который в последний раз разработал рекомендацию в 2004 году. WHATWG взял на себя разработку стандарта, опубликовав его как живой документ. W3C теперь публикует стабильные снимки стандарта WHATWG.
История объектной модели документа переплетается с историей «браузерных войн » последнего времени. 1990-е годы между Netscape Navigator и Microsoft Internet Explorer, а также с JavaScript и JScript, первыми языками сценариев будет широко реализован в движках JavaScript веб-браузеров.
JavaScript был выпущен Netscape Communications в 1995 году в составе Netscape Navigator 2.0. Конкурент Netscape, Microsoft, выпустил Internet Explorer 3.0 в следующем году с повторной реализацией JavaScript под названием JScript. JavaScript и JScript позволяют веб-разработчикам создавать веб-страницы с интерактивностью на стороне клиента. Ограниченные возможности для обнаружения генерируемых пользователями событий и изменения HTML-документа в первом поколении этих языков в конечном итоге стали известны как «DOM Level 0» или «Legacy DOM». Для DOM уровня 0 не было разработано никакого независимого стандарта, но он был частично описан в спецификациях для HTML 4..
Унаследованная DOM была ограничена типами элементов, к которым можно было получить доступ. Форма, ссылка и элементы изображения могут ссылаться на иерархическое имя, которое начинается с корневого объекта документа. Иерархическое имя может использовать либо имена, либо последовательный индекс пройденных элементов. Например, элемент ввода формы может быть доступен как document.formName.inputName
или document.forms [0].elements [0]
.
Устаревшая DOM включили проверку формы на стороне клиента и популярный эффект «rollover ».
В 1997 году Netscape и Microsoft выпустили версию 4.0 Netscape Navigator и Internet Explorer, соответственно, добавив поддержку функции Dynamic HTML (DHTML), позволяющей вносить изменения в загруженный документ HTML. DHTML требовал расширения для рудиментарного объекта документа, который был доступен в реализациях Legacy DOM. Хотя реализации Legacy DOM в значительной степени были совместимы, поскольку JScript был основан на JavaScript, расширения DHTML DOM разрабатывались параллельно каждым производителем браузера и оставались несовместимыми. Эти версии модели DOM стали известны как «промежуточная модель DOM».
После стандартизации ECMAScript рабочая группа W3C DOM начала разработку стандартной спецификации DOM. Завершенная спецификация, известная как "DOM Level 1", стала Рекомендацией W3C в конце 1998 года. К 2005 году большие части W3C DOM хорошо поддерживались обычными браузерами с поддержкой ECMAScript, включая Microsoft Internet Explorer версии 6 (с 2001 г.), Opera, Safari и Gecko браузеры (например, Mozilla, Firefox, SeaMonkey и Камино ).
Рабочая группа W3C DOM опубликовала свою окончательную рекомендацию и впоследствии была распущена в 2004 году. Усилия разработчиков переместились в WHATWG, которая продолжает поддерживать уровень жизни. В 2009 году группа веб-приложений реорганизовала деятельность DOM в W3C. В 2013 году из-за отсутствия прогресса и предстоящего выпуска HTML5 спецификация DOM Level 4 была передана в HTML Working Group, чтобы ускорить ее завершение. Между тем, в 2015 году группа веб-приложений была расформирована, а управление DOM перешло к группе веб-платформы. Начиная с публикации DOM Level 4 в 2015 году, W3C создает новые рекомендации, основанные на снимках стандарта WHATWG.
getElementById
, а также модель событий и поддержку пространств имен XML и CSS.Для визуализации документа, такого как HTML-страница, большинство веб- браузеры используют внутреннюю модель, аналогичную DOM . Узлы каждого документа организованы в древовидную структуру , называемую деревом DOM, с самым верхним узлом, названным «Объект документа». Когда HTML-страница отображается в браузерах, браузер загружает HTML-код в локальную память и автоматически анализирует его для отображения страницы на экране.
Когда веб-страница загружается, браузер создает объектную модель документа страницы, которая представляет собой объектно-ориентированное представление HTML-документа, которое действует как интерфейс между JavaScript и самим документом. Это позволяет создавать динамические веб-страницы, потому что внутри страницы JavaScript может:
Поскольку DOM поддерживает навигацию в любом направлении (например, родительский и предыдущий родственник) и допускает произвольные модификации, реализация должна по крайней мере, буферизируйте документ, который был прочитан до сих пор (или какую-либо его проанализированную форму).
Веб-браузеры полагаются на механизмы макета для синтаксического анализа HTML в ДОМ. Некоторые механизмы компоновки, такие как Trident / MSHTML, связаны в основном или исключительно с определенным браузером, например Internet Explorer. Другие, в том числе Blink, WebKit и Gecko, используются рядом браузеров, например Google Chrome, Opera, Safari и Firefox. Различные механизмы компоновки реализуют стандарты DOM с разной степенью соответствия.
Реализации DOM:
Викискладе есть медиафайлы, связанные с объектными моделями документов. |