DOM

Објектен модел на документот (Document Object Model (**DOM**)) е платформски и јазично независен стандарден објектен модел за презентирање на HTML или XML формати. Со други зборови, претставување на HTML или XML документ во хиерархиска структура на дрво. DOM им овозможува на објектно ориентираните апликациско програмски интерфејси да извршат расчленување на HTML или XML преку едно добро дефинирано хиерархиско структурно дрво, како и оперирање со неговата содржина.

На почетокот биле имплементирани различни интерфејси на страната на web пребарувачите за манипулација со елементите во HTML документот со помош на JavaScript. Ова било сигнал за W3C (World Wide Web конзорциумот) да излезе со серија на стандардни спецификации кои го дефинираат W3C DOM објектот. W3C спецификациите се независни од платформата и јазикот.

Ваквата имплементација бара целата содржина на документот да биде расчленета и сместена во меморија. **DOM** е најдобро да се користи во апликации каде до елементите од документот би требало да биде пристапено (и/или со истите да биде манипулирано) не-секвенцијално или при непрекината обработка на документот. Ако апликацијата вклучува последователно или само едно читање на документот (во еден наврат), DOM не е неопходен. Последователниот SAX модел има предности во ваквии случаи во смисла на брзината и помалите мемориски барања.

## Нивоа

*W3C DOM* спецификациите се поделени на нивоа, секое ниво се состои од неопходни и произволни модули. За да се тврди дека една апликација поддржува одредено ниво, потребно е да бидат имплементирани неопходните модули од соодветното ниво и сите пониски нивоа. Апликацијата може да ги поддржува и специфичните екстензии на некои производители доколку не се во конфликт со W3C стандардите. Од 2005, Ниво 1 и Ниво 2, како и некои модули од Ниво 3 стануваат W3C Препораки што значи дека тие го достигнале нивната крајна форма.

;Ниво 0 : Апликацијата поддржува DOM, кој постоел пред создавањето на DOM Ниво 1. Тука се вклучени DHTML модел на објект како и Netscape DOM. Нивото 0 не е некоја формална спецификација дефинирана од страна на W3C ами го означува она што постоело пред да започне процесот на стандардизација.

;Ниво 1 : Навигација низ DOM (HTML и XML) документот (хиерархиска структура на дрво) и манипулација со содржината (што вклучува и додавање на елементи). Специфичните HTML елементи се исто така вклучени.

;Ниво 2 : Поддржано е XML именувањето, филтрирани погледи и настани.

;Ниво 3 : Нивото 3 се состои од 6 различни спецификации:
:# DOM Level 3 Основа; 
:# DOM Level 3 Load и Save; 
:# DOM Level 3 XPath; 
:# DOM Level 3 Погледи и Форматирање; 
:# DOM level 3 Барања; и
:# DOM Level 3 Валидација, која понатаму го проширува DOM

## Употреба во пребарувачи

Бидејќи секој пребарувач исклучиво си поддржува свој DOM, интероперабилните проблеми се огромни. Со цел да бидат cross-browser компатибилни, што значи, да бидат поддржани сите (или повеќето) пребарувачи, огромни делови од Dynamic HTML кодот треба да се препишува за секој пребарувач да биде поддржан.

Обичниот пак, едноставен DOM дава можност за огромно поедноставување на изработката на комплексни семрежни прилози.
*W3C DOM Level 1* сѐ уште е препорака од 1 Октомври, 1998. Стандардизациските напори не носат моментален напредок и промени, затоа што пребарувачите кои не можеа да ги пратат овие стандарди, како Internet Explorer 4.x и Netscape 4.x сѐ уште се користеа во 2000 година. Од 2005-та големи делови од W3C DOM се солидно поддржани од основните JavaScript-оспособени пребарувачи, вклучувајќи ги Microsoft Internet Explorer (верзија 5 (1999) и верзија 6 (2001)), Gecko пребарувачи (како Mozilla и Firefox), Opera, Konqueror, и Safari. Веб девелоперите почнаа сè повеќе или исклучиво да се потпираат на W3C DOM, бидејќи дозволува компатибилност помеѓу пребарувачите кои најмногу се користат.

## Особености

* Document Object Model (DOM) Level 1 Спецификација
* Препораки за ниво 2:
** Document Object Model (DOM) Level 2 Core Спецификација
** Document Object Model (DOM) Level 2 Views Спецификација
** Document Object Model (DOM) Level 2 Events Спецификација
** Document Object Model (DOM) Level 2 Style Спецификација
** Document Object Model (DOM) Level 2 Traversal and Range Спецификација
** Document Object Model (DOM) Level 2 HTML Спецификација
* Препоракиза ниво 3 :
** Document Object Model (DOM) Level 3 Core Спецификација
** Document Object Model (DOM) Level 3 Load и Save Спецификација
** Document Object Model (DOM) Level 3 Validation Спецификација
* Ниво 3:
** Document Object Model (DOM) Level 3 XPath Спецификација
** Document Object Model (DOM) Level 3 Views и Formatting Спецификација
** Document Object Model (DOM) Requirements

## Надворешни врски

* W3.org DOM
* Посредници за ...
** C++ 
** Java - W3C Document Object Model Level 2
** Lisp 
** Pascal (Kylix програмска алатка)
** Perl
** PHP
** Python 
** Ruby 
** TCL

Категорија:Информатика
Категорија:Програмирање