Документен обектен модел: Разлика между версии

Изтрито е съдържание Добавено е съдържание
Ред 7:
взаимната и обратната съвместимост, специалистите от [[W3C]] са класифицирали този модел в нива, всяко със своя собствена спецификация. Всички тези характеристики са комбинирани в една обща група, наречена W3C DOM.[[Файл:DocObjectModel.png|thumb|Илюстрация на дървовиден DOM.|330x330px]]
== История ==
История на DOM се преплита с историята на "войните на браузърите" в края на 1990-та година между Netscape Navigator, [[Internet Explorer|Microsoft Internet Explorer]], и между първите скриптови езици [[JavaScript]] и JScript, които са широко използвани в оформлението на клиентската част на уеб браузърите.
 
DOM се е появил като спецификация, за да може [[JavaScript]] и [[Java]] програми да бъдат преносими за различни уеб браузъри.
 
=== Традиционен DOM ===
[[JavaScript]] е създаден от Netscape Communications през 1996 г. като част от Netscape Navigator 2.0. Конкурентът на Netscape - [[Microsoft]] пуска по-късно същата година, [[Internet Explorer]] 3.0 с порт на [[JavaScript]], наречен JScript. [[JavaScript]] и JScript позволяват на разработчиците да създават интерактивни уеб страници от страна на клиента. Ограничените възможности за откриване на създадените от потребителите събития и промяна на [[HTML]] документите в първото поколение на тези езици в крайна сметка става известено като "DOM Level 0" или "традиционен DOM". За DOM Level 0 няма разработен самостоятелен стандарт, но е бил частично описан в спецификацията на HTML4.
 
Традиционният DOM е ограничен във видовете елементи, които могат да бъдат достъпни. Такива елементи като форма (form), връзка ([[Хипертекст|link]]) и изображение (image) могат да бъдат достъпни чрез използването на йерархични имена, които започват от корена на документният обект. Йерархичното име може да използва или името или последователните индекси на общият елемент. Например, въвеждане на форма може да бъде зададено като "document.formName.inputName" или "document.forms [0] .elements [0]."
Ред 19:
 
=== Междинен DOM ===
През 1997 г., Netscape и Microsoft пуснаха Netscape Navigator, Internet Explorer 4.0,  добавяйки поддръжка на Dynamic HTML ([[DHTML]]), който представлява възможност за промяна на функционалността на един HTML документ при неговото зареждане. На [[DHTML]] му трябвали разширения за елементарният обект document, които съществували в традиционният DOM при изпълнението му. Тъй като JScript е основан на JavaScript, изпълнението на традиционният DOM било до голяма степен съвместимо, но разширението на DOM за DHTML е разработено паралелно от всеки един от създателите на браузърите и остава несъвместимо. Тези версии на DOM стават известни като "междинен DOM".
 
Междинният DOM давал възможност за манипулиране на свойствата на Cascading Style Sheets ([[CSS]]), оказвайки влияние на изобразяването на документа. Той също така предоставя достъп до нови свойства, наречени "пластове", чрез свойство "document.layers" (в Netscape Navigator) и "document.all" (в Internet Explorer). Поради несъответствия в първоначалното развитие на междинният DOM разработването на уеб страници изисквало специална обработка за всеки отделен случай.
 
По-новите версии на Netscape Navigator спряха да поддържат междинен DOM. [[Internet Explorer]] продължава да поддържа междинният DOM за обратна съвместимост.
 
=== Стандартизация ===
Организацията World Wide Web Consortium ([[World Wide Web Consortium|W3C]]), основана през 1994 г. за поддържането и развитието на отворените стандарти [[World Wide Web]], принуждава Netscape Communications и Microsoft, заедно с други фирми, да разработят стандарт за браузърните скриптови езици, наречен [[ECMAScript]]. Първата версия на стандарта е публикувана през 1997 година. Следващите издания на [[JavaScript]] и JScript започват да прилагат стандарта [[ECMAScript]] за по-добра съвместимост в различните браузъри.
 
След излизането на [[ECMAScript]] [[World Wide Web Consortium|W3C]] започва работа по стандартизацията на DOM. Оригиналният стандарт DOM, известен също като "DOM ниво 1" е
Ред 60:
Petar     Petrov
 
Като се има предвид съществуването на различни DOM реализации в уеб браузърите, сред програмистите е разпространен навика да се проверява изпълнението на определени възможности на DOM за всеки браузър и след това да ги използват. Кодът по-долу показва начин, за проверка за стандарти поддържащи W3CDOM, преди да се пусне кода, зависещ от резултата на този тест.<syntaxhighlight>
навика да се проверява изпълнението на определени възможности на DOM за всеки браузър и след това да ги използват. Кодът по-долу показва начин, за проверка за стандарти поддържащи W3CDOM, преди да се пусне кода, зависещ от резултата на този тест.<syntaxhighlight>
if (document.getElementById && document.getElementsByTagName) {
// ако методите getElementById и getElementsByTagName
Line 73 ⟶ 72:
 
== W3C DOM Нива ==
Текущото ниво на спецификацията на DOM е Level 2, но все пак някои части на спецификацията на Level 3 се препоръчват от [[World Wide Web Consortium|W3C]].
 
===== Ниво 0 =====
Включва всички специфични модели DOM, които са съществували до появата на ниво 1, например, document.images, document.forms, document.layers и document.all. Необходимо е да се отбележи, че тези модели не са официални спецификации DOM, публикувани от [[World Wide Web Consortium|W3C]], а по-скоро са информацията за това какво е съществувало преди процеса на стандартизация.
 
==== Ниво 1 ====
Основната функционалност на DOM ([[HTML]] и [[XML]]) документи, като например получаване дървовидна структура на документа, способността за променяне и добавяне на данни.
 
==== Ниво 2 ====
Подкрепа за т.нар. именни пространства [[XML]] <--filtered views--> <- филтрира гледки -> и събития.
 
==== Ниво 3 ====
Line 97 ⟶ 96:
== Приложение ==
=== Уеб браузъри ===
Не се изисква уеб браузърите да използват DOM, за да изпълняват [[HTML]]-документи. Въпреки това, DOM се изисква за скриптове [[JavaScript]], които желаят да наблюдават или да променяте уеб страница динамично. С други думи, [[Document Object Model]] - е инструмент, чрез който съдържанието на [[JavaScript]] вижда [[HTML]]-страницата и състоянието на браузъра.
 
== Източници ==