Что такое DOM?(краткое изложение и важность) - PullRequest
26 голосов
/ 12 февраля 2011

Что такое объектная модель документа (DOM)?

Я задаю этот вопрос, потому что я в основном работал в .NET, и у меня ограниченный опыт, но я часто слышу, как более опытные разработчики говорят или упоминают об этом. Я читаю учебники онлайн, но я не могу понять всю картину. Я знаю, что это API!

Более конкретные вопросы:

  1. Где это в настоящее время используется?
  2. Какие области (ы) разработчиков используют его (например, разработчики .NET)?
  3. Насколько уместно понимать всех разработчиков в целом?

Ответы [ 6 ]

13 голосов
/ 12 февраля 2011

В общих чертах DOM - это модель для структурированного документа.
Это центральная концепция современной ИТ, и ни один разработчик не может отказаться от DOM. Будь то в .net, в HTML, в XML или других доменах, где он используется.
Это относится ко всем документам (текстовые документы, HTML-страницы, XML-файлы и т. Д.). В сфере разработки это применимо в основном к доменам HTML и XML со слегка отличающимися значениями.

HTML

На арене HTML DOM был представлен, чтобы поддержать революцию, названную в конце 90-х годов «динамическим HTML». До IE4 и Netscape 4.0 документы HTML, которые нельзя было изменить внутри браузера (все, что вам было нужно в эти отдаленные времена для ускорения веб-страницы, это «анимированный GIF» !!!! и HTML версии 3.2).
Поэтому динамическое манипулирование внутри браузера документом, отправленным сервером, было огромной революцией и положило начало привлекательным веб-сайтам, которые мы видим сегодня.

Javascript был представлен Netscape (крещеный javascript для поиска новых тенденций Java, но не связан) и поддерживался как HTTP-серверами Netscape, так и браузерами Netscape, при этом Internet Explorer охотно следовал за перемещением внутри браузера. Однако, когда javascript используется для управления содержимым документа, вам нужен простой способ обозначить часть документа, с которой вы хотите взаимодействовать. Вот где приходит DOM. Хотя HTML 4 не «хорошо сформирован», браузеры создают внутреннее представление страницы с элементом «body» вверху и множеством html-тегов внизу в иерархической организации (дочерние узлы, родительские элементы). атрибуты узлов и т. д.). DOM - это модель, лежащая в основе API, которая позволяет перемещаться по этой иерархии.

Поскольку браузеры Netscape и IE были конкурирующими решениями, было мало шансов, что NS и IE DOM сойдутся. W3C вмешался, чтобы позволить меньшим производителям браузеров участвовать в конкурсе, и попытался стандартизировать DOM. Отсюда и W3C DOM. Все, что он сделал, это просто ввел другой диалект, и, как все знают, потребовались годы и два серьезных конкурента, чтобы заставить MS соблюдать стандарты.

Несмотря на то, что более современные методы навигации, такие как JQuery, имеют сокращенные обозначения для DOM, они внутренне полагаются на DOM.

XML

HTML продемонстрировал недостатки в проявлении снисходительности к «правильности» документов, и это породило новое увлечение: XML. На веб-арене XML и XSLT впервые поддерживались IE5 и применялись во многих других областях, а не только при отображении страниц.
Для синтаксического анализа XML, в основном в Java Word, вы должны разработать парсер SAX, который в основном является плагином для механизма SAX, в котором вы описываете, что должен делать механизм для всех событий XML (тегов ...), с которыми он столкнется в разобранный документ. Разработка синтаксического анализатора SAX не так проста, но это решение занимает мало места.
Однако вы должны разработать конкретную для каждого нового типа документа ...
Вскоре библиотеки начали анализировать любой документ и строить карту иерархии в памяти. Поскольку он также имел те же понятия корня, родителей и детей (унаследованные от SGML через HTML), его также называли DOM, и имя применяется независимо от библиотеки.

Другие домены

Концепция DOM не ограничена или даже изобретена для HTML или XML. DOM - это общая концепция, применимая к любому документу, особенно к тем (в подавляющем большинстве из них), показывающая иерархическую структуру, в которой вам нужно ориентироваться. Вы можете говорить о DOM документа MS-Word, и есть API для навигации по ним.

8 голосов
/ 12 февраля 2011

DOM - это интерфейс прикладного программирования для четко определенных структур HTML и XML (согласно документу W3C ).Он используется в любом месте, где вы взаимодействуете с элементами веб-страницы (любой элемент - стиль, текст, атрибуты и т. Д.).Вы много услышите о DOM с библиотеками JavaScript и / или JavaScript, такими как jQuery (который, конечно, является JavaScript).На него также ссылаются Java, ECMAScript, JScript и VBScript.

Если вы программируете на .NET, важно, чтобы вы работали в Интернете.Если вы занимаетесь разработкой приложений, это не так важно.DOM определенно не ушел в прошлое - он используется и работает каждый день многими разработчиками.С учетом сказанного была проведена работа по стандартизации DOM в веб-браузерах.(Опять же, библиотеки могут помочь скрыть эти различия. Это одна из причин популярности jQuery. Вам не нужно беспокоиться о специфике браузера - вы просто делаете то, что вам нужно.)

Документ Iссылка на выше делает большую работу, отвечая на все ваши вопросы и многое другое.Я очень рекомендую прочитать это.Если у вас есть дополнительные вопросы, вы также можете проверить ссылки ниже:

5 голосов
/ 12 февраля 2011

Я действительно не смогу объяснить это лучше, чем статья Википедии о DOM

Но ответить на несколько ваших вопросов:

Где мы до сих пор его используем?

Каждый веб-браузер с середины девяностых.

Кто его использует,

Каждый веб-разработчик с середины девяностых.

по какой технологии?

В основном в Интернете с помощью JavaScript, но практически каждый раз, когда вы используете XML / HTML программно, вы используетекакая-то реализация DOM.

Насколько это важно для кого-либо в .net carrier?[sic]

Чрезвычайно, хотя вы, вероятно, используете это, даже не зная об этом.

Это просто вещь прошлого, которая интенсивно использовалась, но имела проблемы?

Если это так, то кто-то должен сказать Джону Резигу , что он потратил впустую последние 3 года своей жизни.

1 голос
/ 17 июля 2015

Что такое DOM?

Объектная модель документа (DOM) - это программный API для документов HTML и XML. Он определяет логическую структуру документов и способ доступа к документу и манипулирования им. Стандарт, определенный консорциумом W3.

Источник: http://www.w3.org/TR/WD-DOM/introduction.html

0 голосов
/ 05 ноября 2018

Когда браузер загружает HTML-страницу, он преобразует ее в Document Object Model (DOM).

Созданный браузером HTML DOM конструируется в виде дерева, которое состоит из всех элементов HTML-страницы в виде объектов.Например, если вы загружаете в браузер страницу HTML ниже:

<!DOCTYPE html>
<html>
    <head>
        <title>website title</title>
    </head>
    <body>
        <p id="js_paragraphId">I'm a paragraph</p>
        <a href="http://somewebsite.com">some website</a>
    </body>
</html>

После загрузки браузер преобразует ее в:

HTML DOM

Некоторые возможности языка сценариев в HTML DOM состоят из:

1 - изменить все элементы HTML на странице.

2 - изменить всеАтрибуты HTML на странице.

3- Изменить все стили CSS на странице.

4- Удалить существующие элементы и атрибуты HTML.

5- Добавить новые элементы HTMLи атрибуты.

6- Реагировать на все существующие HTML-события на странице.

7- создавать новые HTML-события на странице.

Давайте вернемся к вашемувопросы:

1 - В настоящее время он используется во всех современных браузерах.

2 - Фронтальные разработчики.

3 - Все фронтенд-разработчики, использующие скриптыязыки, особенно JavaScript.

0 голосов
/ 24 сентября 2017

DOM - это просто интерфейс времени выполнения между input-html и output-html Html может просто отображать теги.DOM используется для манипулирования тегами.Например, getelementbyid в javascript не будет работать без DOM.

...