Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Объектная модель документа ( DOM ) является кросс-платформенным и независимый от языка интерфейса , который лечит XML - или HTML - документ в виде древовидной структуры , в которой каждый узел представляет собой объект , представляющий собой часть документа. DOM представляет собой документ с логическим деревом. Каждая ветвь дерева заканчивается узлом, и каждый узел содержит объекты. Методы DOM обеспечивают программный доступ к дереву; с их помощью можно изменить структуру, стиль или содержание документа. К узлам могут быть прикреплены обработчики событий . Как только событие запускается, обработчики событий запускаются. [2]

Принципиальной стандартизацией модели DOM занимался Консорциум World Wide Web (W3C), который в последний раз разработал рекомендацию в 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 Level 0 не было разработано независимого стандарта, но он был частично описан в спецификациях для HTML 4 .

Унаследованная модель DOM была ограничена в типах элементов, к которым можно было получить доступ. На элементы формы , ссылки и изображения можно ссылаться с помощью иерархического имени, которое начинается с корневого объекта документа. Иерархическое имя может использовать либо имена, либо последовательный индекс пройденных элементов. Например, к элементу ввода формы можно получить доступ как document.formName.inputNameили document.forms[0].elements[0].

Устаревшая модель DOM поддерживает проверку формы на стороне клиента и популярный эффект « ролловера ».

В 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 и Camino ).

Стандарты [ править ]

W3C DOM Рабочая группа опубликовала свою окончательную рекомендацию и впоследствии распались в 2004 году усилиями развития мигрировали в WHATWG , которая продолжает поддерживать жизненный уровень. [3] В 2009 году группа веб-приложений реорганизовала деятельность DOM в W3C. [4] В 2013 году из-за отсутствия прогресса и предстоящего выпуска HTML5 спецификация DOM Level 4 была передана рабочей группе HTML, чтобы ускорить ее завершение. [5] Между тем, в 2015 году группа веб-приложений была расформирована, а управление DOM перешло к группе веб-платформы. [6] Начиная с публикации DOM Level 4 в 2015 году, W3C создает новые рекомендации, основанные на снимках стандарта WHATWG.

  • DOM Level 1 предоставляет полную модель для всего документа HTML или XML , включая средства для изменения любой части документа.
  • DOM Level 2 был опубликован в конце 2000 года. Он представил getElementByIdфункцию, а также модель событий и поддержку пространств имен XML и CSS.
  • В DOM Level 3, опубликованном в апреле 2004 г., добавлена ​​поддержка XPath и обработки событий клавиатуры , а также интерфейс для сериализации документов в формате XML.
  • DOM Level 4 был опубликован в 2015 году. Это снимок уровня жизни WHATWG. [7]

Приложения [ править ]

Веб-браузеры [ править ]

Для визуализации документа, такого как HTML-страница, большинство веб-браузеров используют внутреннюю модель, аналогичную DOM . Узлы каждого документа организованы в древовидную структуру , называемую деревом DOM , с самым верхним узлом, названным «Объект документа». Когда HTML-страница отображается в браузерах, браузер загружает HTML-код в локальную память и автоматически анализирует его для отображения страницы на экране. [8]

JavaScript [ править ]

Когда веб-страница загружается, браузер создает объектную модель документа для страницы, которая является объектно-ориентированным представлением HTML-документа, который действует как интерфейс между JavaScript и самим документом. Это позволяет создавать динамические веб - страницы , [9] , так как в пределах страницы JavaScript может:

  • добавлять, изменять и удалять любые элементы и атрибуты HTML
  • изменить любой из стилей CSS
  • реагировать на все существующие события
  • создавать новые события

Реализации [ править ]

Поскольку DOM поддерживает навигацию в любом направлении (например, родительский и предыдущий родственник) и допускает произвольные модификации, реализация должна, по крайней мере, буферизовать документ, который был прочитан до сих пор (или некоторую его проанализированную форму). [10]

Верстка [ править ]

Веб-браузеры полагаются на механизмы компоновки для синтаксического анализа HTML в DOM. Некоторые механизмы компоновки, такие как Trident / MSHTML , связаны в первую очередь или исключительно с определенным браузером, например Internet Explorer. Другие, в том числе Blink , WebKit и Gecko , используются в ряде браузеров, таких как Google Chrome , Opera , Safari и Firefox . Различные механизмы компоновки реализуют стандарты DOM с разной степенью соответствия.

Библиотеки [ править ]

Реализации DOM:

  • libxml2
  • MSXML
  • Xerces - это набор реализаций DOM, написанных на C ++, Java и Perl.
  • XML для <SCRIPT> - это реализация DOM на основе JavaScript [11]
  • PHP.Gt DOM - это реализация DOM на стороне сервера, основанная на libxml2 и обеспечивающая совместимость DOM уровня 4 [12] с языком программирования PHP.
  • Domino - это реализация DOM на стороне сервера (Node.js), основанная на dom.js. Domino используется в стеке MediaWiki с визуальным редактором.
  • SimpleHtmlDom - это простая объектная модель HTML-документа на C #, которая может программно генерировать HTML-строку.

API, которые предоставляют реализации DOM:

  • JAXP (Java API для обработки XML) - это API для доступа к поставщикам DOM.
  • Lazarus ( Free Pascal IDE) содержит два варианта DOM - с форматом UTF-8 и ANSI.

Инструменты для осмотра:

  • DOM Inspector - инструмент веб-разработчика

См. Также [ править ]

  • Теневой DOM
  • Виртуальный DOM

Ссылки [ править ]

  1. ^ Все версии относятся только к W3C DOM.
  2. ^ «Объектная модель документа (DOM)» . http://www.w3.org/ : W3C . Проверено 12 января 2012 . Объектная модель документа - это интерфейс, не зависящий от платформы и языка, который позволяет программам и сценариям динамически получать доступ и обновлять содержимое, структуру и стиль документов.CS1 maint: location ( ссылка )
  3. ^ "Стандарт DOM" . Проверено 23 сентября 2016 года .
  4. ^ "Объектная модель документа W3C" . Проверено 23 сентября 2016 года .
  5. ^ ([email protected]), Филипп Ле Эгарет. «Новый устав рабочей группы HTML от Филиппа Ле Эгарет от 30 сентября 2013 г. ([email protected] от сентября 2013 г.)» . Проверено 23 сентября 2016 года .
  6. ^ «PubStatus - WEBAPPS» . Проверено 23 сентября 2016 года .
  7. ^ "W3C DOM4" . Проверено 8 января 2021 года .
  8. ^ « Обзор методов повышения эффективности мобильного просмотра веб-страниц », Параллелизм и вычисления, 2018 г.
  9. ^ "JavaScript HTML DOM" . Проверено 23 сентября 2016 года .
  10. ^ Kogent Solutions Inc. (2008). Черная книга Ajax, новое издание (с компакт-диском) . Dreamtech Press. п. 40. ISBN 978-8177228380.
  11. ^ «XML для <SCRIPT> кроссплатформенного анализатора XML в JavaScript» . Проверено 23 сентября 2016 года .
  12. ^ «Современный DOM API для проектов PHP 7» .

Общие ссылки [ править ]

  • Фланаган, Дэвид (2006). JavaScript: полное руководство . O'Reilly & Associates. стр.  312 -313. ISBN 0-596-10199-6.
  • Кох, Питер-Павел (14 мая 2001 г.). «Объектная модель документа: введение» . Цифровой веб-журнал . Архивировано из оригинального 27 -го апреля 2017 года . Проверено 10 января 2009 года .
  • Le Hégaret, Филипп (2002). «Объектная модель документа W3C (DOM)» . Консорциум World Wide Web . Проверено 10 января 2009 года .
  • Гиссе, Фабиан. "Что приносит каждый уровень DOM?" . Центр разработчиков Mozilla . Mozilla Project . Проверено 10 января 2009 года .

Внешние ссылки [ править ]

  • Уровень жизни DOM от WHATWG
  • Оригинальный концентратор W3C DOM от рабочей группы W3C DOM (устарел)
  • Рабочая группа веб-платформы (нынешний управляющий W3C DOM)