Эта статья включает в себя список общих ссылок , но он остается в основном непроверенным, поскольку в нем отсутствуют соответствующие встроенные ссылки . ( Август 2010 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Пример иерархии DOM в документе HTML | |
Впервые опубликовано | 1 октября 1998 г . |
---|---|
Последняя версия | DOM4 [1] 19 ноября 2015 г . |
Организация | Консорциум World Wide Web , WHATWG |
Базовые стандарты | WHATWG DOM Living Standard W3C DOM4 |
Сокращение | ДОМ |
HTML |
---|
Сравнения |
Объектная модель документа ( 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
Ссылки [ править ]
- ^ Все версии относятся только к W3C DOM.
- ^ «Объектная модель документа (DOM)» . http://www.w3.org/ : W3C . Проверено 12 января 2012 .
Объектная модель документа - это интерфейс, не зависящий от платформы и языка, который позволяет программам и сценариям динамически получать доступ и обновлять содержимое, структуру и стиль документов.
CS1 maint: location ( ссылка ) - ^ "Стандарт DOM" . Проверено 23 сентября 2016 года .
- ^ "Объектная модель документа W3C" . Проверено 23 сентября 2016 года .
- ^ ([email protected]), Филипп Ле Эгарет. «Новый устав рабочей группы HTML от Филиппа Ле Эгарет от 30 сентября 2013 г. ([email protected] от сентября 2013 г.)» . Проверено 23 сентября 2016 года .
- ^ «PubStatus - WEBAPPS» . Проверено 23 сентября 2016 года .
- ^ "W3C DOM4" . Проверено 8 января 2021 года .
- ^ « Обзор методов повышения эффективности мобильного просмотра веб-страниц », Параллелизм и вычисления, 2018 г.
- ^ "JavaScript HTML DOM" . Проверено 23 сентября 2016 года .
- ^ Kogent Solutions Inc. (2008). Черная книга Ajax, новое издание (с компакт-диском) . Dreamtech Press. п. 40. ISBN 978-8177228380.
- ^ «XML для <SCRIPT> кроссплатформенного анализатора XML в JavaScript» . Проверено 23 сентября 2016 года .
- ^ «Современный 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)