В чем разница между объектной моделью браузера и объектной моделью документа? - PullRequest
21 голосов
/ 06 февраля 2010

В чем разница между двумя?

Ответы [ 5 ]

25 голосов
/ 06 февраля 2010

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

Объектная модель документа стандартизирована и специфична для текущего HTML-документа. Он предоставляется объектной моделью браузера (т. Е. DOM является подмножеством спецификации).

13 голосов
/ 25 сентября 2011

BOM

Это неофициальный термин, так как нет ни одного стандарта W3C или WHATWG, в котором он упоминается.

Одним из простых определений было бы то, что спецификация охватывает всю структуру объекта, доступную через скрипты в браузере, начиная с объекта window, который «содержит все остальное», поскольку это глобальный объект.

Объект window содержит множество свойств (попробуйте console.dir( window );). Эти свойства указаны в многочисленных веб-стандартах. «Базовая» спецификация объекта window по-прежнему указана в стандарте HTML - см. Здесь , но я полагаю, что только редакторы решат перенести эту спецификацию в отдельный стандарт. Я определенно поддерживаю стандарт BOM или Browser Environment, чтобы сделать вещи более логичными и уместными.

DOM

С другой стороны, это формальный термин. Вы можете найти определения этого термина в различных стандартах, например, DOM4 Стандартные состояния:

DOM - это независимый от языка и платформы интерфейс, который позволяет программы и скрипты для динамического доступа и обновления содержимого и структура документов.

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

Простым определением будет то, что DOM реализован как объект document (который является корнем дерева DOM между прочим). По сути, дерево DOM (и все внутри него) можно считать частью DOM. Аналогично, все, что находится вне дерева DOM, не является частью DOM.

за пределами DOM-дерева == все свойства window, кроме document объекта

3 голосов
/ 08 февраля 2010

«Объектная модель браузера» (BOM) - это термин с начала 2000-х годов, который не завоевал популярность и был заменен [1] на термин «Веб-API»

Веб-API - это JavaScript API-интерфейсы , доступные для веб-страниц: любые объекты / интерфейсы, их свойства, методы и события, которые браузер делает доступными для страницы, за исключением объектов как String, которые являются частью языка JavaScript .

DOM (объектная модель документа) в контексте веб-разработки представляет собой подмножество веб-API, связанных с манипулированием структурой и содержимым веб-страниц и других «документов».

Исторически DOM проектировался как " интерфейс, не зависящий от платформы и языка " с спецификацией DOM Level 1 , описывающей привязки ECMAScript (JavaScript) и Java в приложениях. Вы можете по-прежнему использовать API DOM для работы с данными XML / HTML извне браузера (например, используя Xerces в Java), но версия спецификации DOM "Живой стандарт" поддерживается с акцентом на Интернет сценарий использования и самый последний последний отчет о реализации W3C включает в основном (если не только) веб-браузеры.


[1] См. Тенденции Google для "объектной модели браузера" и как в современной книге (JavaScript Cookbook: Programming the Web) это только кратко упоминается как 'BOM - см. Web API «.

[ответ переписан в 2019 году]

0 голосов
/ 16 января 2013

Спецификация - это более широкий обзор всего браузера, где DOM ограничен окном документа и связанными методами. смотреть полную статью Javascript-браузер-объект-модель

0 голосов
/ 24 июля 2011

я думаю BOM=DOM +(-) non standard properties of the browser. поэтому каждый браузер имеет свою спецификацию

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