Объектная модель документа - Document Object Model - Wikipedia

Объектная модель документа
DOM-model.svg
Пример иерархии DOM в документе HTML
Впервые опубликовано1 октября 1998 г.; 22 года назад (1998-10-01)
Последняя версияДОМ4[1]
19 ноября 2015 г.; 5 лет назад (2015-11-19)
ОрганизацияКонсорциум World Wide Web, WHATWG
Базовые стандартыWHATWG DOM Living Standard
W3C DOM4
СокращениеДОМ

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

Основная стандартизация модели 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 Level 0 не было разработано независимого стандарта, но он был частично описан в спецификациях для HTML 4.

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

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

В 1997 году Netscape и Microsoft выпустили версию 4.0 Netscape Navigator и Internet Explorer соответственно, добавив поддержку Динамический 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 г.), Опера, Сафари и Геккон браузеры на основе (например, Mozilla, Fire Fox, SeaMonkey и Камино ).

Стандарты

В 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-дерево, с самым верхним узлом, названным «Объект документа». Когда HTML-страница отображается в браузерах, браузер загружает HTML-код в локальную память и автоматически анализирует его для отображения страницы на экране.[8]

JavaScript

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

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

Реализации

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

Компоновка двигателей

Веб-браузеры полагаются на компоновка двигателей для синтаксического анализа HTML в DOM. Некоторые механизмы компоновки, такие как Трезубец / MSHTML, связаны в основном или исключительно с определенным браузером, например Internet Explorer. Другие, в том числе Мигать, WebKit, и Геккон, используются рядом браузеров, например Гугл Хром, Опера, Сафари, и Fire Fox. Различные механизмы компоновки реализуют стандарты DOM с разной степенью соответствия.

Библиотеки

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

  • libxml2
  • MSXML
  • Xerces представляет собой набор реализаций DOM, написанных на C ++, Java и Perl.
  • XML для

Рекомендации

  1. ^ Все версии относятся только к W3C DOM.
  2. ^ «Объектная модель документа (DOM)». http://www.w3.org/: W3C. Получено 2012-01-12. Объектная модель документа - это интерфейс, не зависящий от платформы и языка, который позволяет программам и сценариям динамически получать доступ и обновлять содержимое, структуру и стиль документов.CS1 maint: location (связь)
  3. ^ «ДОМ Стандарт». Получено 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". Получено 23 сентября 2016.
  8. ^ "Обзор методов повышения эффективности просмотра веб-страниц с мобильных устройств ", Параллелизм и вычисления, 2018 г.
  9. ^ "JavaScript HTML DOM". Получено 23 сентября 2016.
  10. ^ Kogent Solutions Inc. (2008). Черная книга Ajax, новое издание (с компакт-диском). Dreamtech Press. п. 40. ISBN  978-8177228380.
  11. ^ "XML для