it-swarm-ru.tech

Что такое DOM? (краткое изложение и важность)

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

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

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

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

В общих чертах DOM - это модель для структурированного документа.
Это центральная концепция современной ИТ, и ни один разработчик не может отказаться от DOM. Будь то в .net, в HTML, в XML или других доменах, где он используется.
Применяется ко всем документам (документы Word, 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 для навигации по ним.

13
Alain Pannetier

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

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

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

8
JasCav

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

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

Где мы все еще используем это?

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

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

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

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

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

Насколько это важно для кого-либо в .net перевозчик? [Так в оригинале]

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

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

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

5
Josh

Что такое DOM?

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

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

1
Premraj

объектная модель документа (DOM) - это программа API для HTML и XML документов.

Он определяет логическую структуру документов и способ доступа к документу и манипулирования им. В спецификации DOM термин "документ" используется в широком смысле - все чаще XML используется как способ представления множества различных видов информации, которая может храниться в различных системах, и большая часть этого традиционно рассматривается как данные, а не как документы.

Тем не менее, XML представляет эти данные в виде документов, и DOM может использоваться для управления этими данными.

Читать дальше ..

0
eLi

Когда браузер загружает 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- React ко всем существующим HTML-событиям на странице.

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

Вернемся к вашим вопросам:

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

2- Front-end разработчики.

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

0
Saeed Hassanvand