20444

Document Object Model

Доклад

Информатика, кибернетика и программирование

Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов каждый узел которого представляет собой элемент атрибут текстовый графический или любой другой объект. Изначально различные браузеры имели собственные модели документов DOM не совместимые с остальными.

Русский

2013-07-25

54 KB

10 чел.

19 Document Object Model

DOM (от англ. Document Object Model — «объектная модель документа») — это не зависящий от платформы и языка программный интерфейс, позволяющий программам и скриптам получить доступ к содержимому HTML, XHTML и XML-документов, а также изменять содержимое, структуру и оформление таких документов.

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

Изначально различные браузеры имели собственные модели документов (DOM), не совместимые с остальными. Для того, чтобы обеспечить взаимную и обратную совместимость, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.

Еще один интерфейс прикладного программирования, называемый JDOM, обеспечивает более высокий, чем W3C DOM, уровень для работы с XML документами на Java — www.jdom.org.

Уровни W3C DOM

Текущим уровнем спецификаций DOM является Уровень 2, но тем не менее некоторые части спецификаций Уровня 3 являются рекомендуемыми W3C.

Уровень 0 

Включает в себя все специфические модели DOM, которые существовали до появления Уровня 1, например document.images, document.forms, document.layers и document.all. Необходимо обратить внимание, что эти модели формально не являются спецификациями DOM, опубликованными W3C, а скорее являются информацией о том, что существовало до начала процесса стандартизации.

Уровень 1 

Базовые функциональные возможности DOM (HTML и XML) в документах, такие как получение дерева узлов документа, возможность изменять и добавлять данные.

Уровень 2 

Поддержка так называемого пространства имён XML <--filtered views--> и событий.

Уровень 3 

Состоит из шести различных спецификаций:

  1.  DOM Level 3 Core;
  2.  DOM Level 3 Load and Save;
  3.  DOM Level 3 XPath;
  4.  DOM Level 3 Views and Formatting;
  5.  DOM Level 3 Requirements;
  6.  DOM Level 3 Validation.

Эти спецификации являются дополнительными расширениями DOM.

Реализация DOM в веб-браузерах

Учитывая существование различных реализаций DOM в веб-браузерах, среди программистов распространена привычка проверять работоспособность тех или иных возможностей DOM для каждого конкретного браузера, и только потом использовать их. Код ниже иллюстрирует способ проверки на поддержку стандартов W3CDOM перед тем как запустить код, зависящий от результата этой проверки.

 

if (document.getElementById && document.getElementsByTagName) {

   // если методы getElementById и getElementsByTagName

   // доступны, то можно относительно точно предположить поддержку W3CDOM.

 

   obj = document.getElementById("navigation")

   // далее идёт другой код с использованием возможностей W3CDOM.

   // .....

}

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

 

 function domImplementationTest(){

   var featureArray = ['HTML', 'XML', 'Core', 'Views',

                       'StyleSheets', 'CSS', 'CSS2', 'Events',

                       'UIEvents', 'MouseEvents', 'HTMLEvents',

                       'MutationEvents', 'Range', 'Traversal'];

   var versionArray = ['1.0', '2.0', '3.0'];

   var i;

   var j;

   if(document.implementation && document.implementation.hasFeature){

     for(i=0; i < featureArray.length; i++){

       for(j=0; j < versionArray.length; j++){

         document.write(

           'Поддержка расширения '+ featureArray[i] + ' версии ' + versionArray[j] + ' : ' + 

           (document.implementation.hasFeature(featureArray[i], versionArray[j]) ? 

           '<font style="color:green">true</font>' : '<font style="color:red">false</font>') + '<br/>'

         );

       }

       document.write('<br/>');

     }

   }

 }

Проблемы

Из-за несовместимости браузеров использование DOM иногда приводит к трудностям HTML-верстки и низкой надёжности страниц.


 

А также другие работы, которые могут Вас заинтересовать

36966. Дослідження базових схем підсілюваньніх каскадів на біполярніх транзисторах 284 KB
  Re емітерний опір Rl R2 резистори дільника що задає режим каскаду по постійному струму. Особливістю класичної схеми каскаду з СБ рис. Залежно від струму колектора транзистора і величини падіння напруги на електродах транзистора усилительного каскаду а також від амплітуди вхідного сигналу розрізняють наступні режими підсилення: режим А; режим В; режим С; режим D і проміжні режими наприклад АВ. Підсилювальний каскад по схемі з СЕ Для підсилювального каскаду класу А розрахунок статичного режиму полягає у виборі такого колекторного...
36968. Захист мережевого сервісу (засобами ОС Windows 2003 Server, OC Linux) 259.5 KB
  Типове ім'я принципіалу виглядає так root dmin@GRINDER.COM що означає ім'я primry nme root характеристику instnce який належить сектору GRINDER.conf [libdefults] defult_relm = GRINDER.COM kdc і dmin сервер для GRINDER.
36969. Дослідження процесу програмування взаємодій за допомогою засобів С++ або С# 14.5 KB
  Система забезпечує сканування кожної книги і обчислює загальну вартість покупки. Система дозволяє клієнту розрахуватися готівкою або кредитною картою. Після підтвердження оплати система контролю покупок друкує чек та зберігає дані про зроблені покупки. При цьому система веде облік повернених покупок.
36970. ЗРІВНОВАЖУВАННЯ ОБЕРТОВИХ МАС 357.36 KB
  Зміст роботи: провести балансування вала із закріпленими на ньому кількома незрівноваженими дисками розміщенням в його опорних перерізах противаг масу і розташування яких визначити з умови статичної та динамічної рівноваги обертових мас у векторній формі.1 а із закріпленими на його валу масами m1 і m2 положення яких задано координатами iri αi. Схема балансування незрівноваженого ротора Припустимо що маси незрівноважені тобто головний вектор і головний момент сил інерції системи не дорівнюють нулю.
36971. Організація VPN-мереж 295 KB
  Відкрийте службу Маршрутизація і віддалений доступ і зайдіть у властивості сервера. Зайдіть на вкладку IP виберіть назву внутрішнього адаптера і створіть статичний пул адрес відмінний від внутрішнього який буде присвоюватися VPNклієнтам. У вкладці Журнал событий виставіть параметр вести журнал всех событий Конфігурація портів Зайдіть у властивості Порты . В результаті у вас з’явиться таке вікно: Конфігуруємо NT Зайдіть у IPмаршрутизация NTпреобразование сетевых адресов .
36972. Анализ данных с помощью функций табличного процессора 208.5 KB
  Ход работы: Постановка задачи: С помощью табличного процессора Microsoft Excel выполнить следующие операции: Создать по приведённому образцу таблицу Реки Украины. На рабочем листе 1 воспользовавшись заготовкой и отформатировав по приведённому на листе образцу создайте таблицу Реки Украины. Переименуйте данный лист в Реки Украины. Необходимо диаграмме присвоить соответствующее имя использовать маркеры долей в расположить лист с диаграммой сразу за листом Реки Украины.
36974. Dивчення засобів роботи з масивами в C++ 71.5 KB
  Практичне засвоєння методів обробки інформації із застосуванням масивів. Завдання 9-1. Скласти й відлагодити програму, яка створює (в пам’яті ЕОМ) квадратну матрицю порядка n (n задавати константою).