Об'єктна модель документа: відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Вилучено вміст Додано вміст
Немає опису редагування |
Іванко1 (обговорення | внесок) оформлення, правопис |
||
Рядок 1:
'''Об'єктна модель
З точки зору [[Об'єктно-орієнтоване програмування|об'єктно-орієнтованого програмування]], DOM визначає [[Клас (програмування)|класи]], [[Метод (програмування)|методи]] та [[Атрибут (об'єктне програмування)|атрибути]] цих методів для аналізу структури документів та роботи із представленям документів у вигляді [[Дерево (структура даних)|дерева]]. Все це призначено для того, аби надати можливість [[Програма|комп'ютерній програмі]] доступу та динамічної модифікації структури, змісту та оформлення
Разом із поширенням та розвитком веб-технологій і [[Веб-оглядач|веб-переглядачів]] почали з'являтись різні, часто несумісні інтерфейси роботи із [[HTML]] документами в [[інтерпретатор|інтерпретаторах]] [[JavaScript]] вбудованих в веб-переглядачі. Це спонукало [[World Wide Web Consortium]] (W3C) узгодити та визначити низку стандартів, які отримали назву ''W3C Document Object Model'' (W3C DOM). Специфікації W3C не залежать від платформи або [[мова програмування|мови програмування]].
Рядок 11:
; Level 0 : Не було стандартизовано, став основою для появи DOM Level 1. В якості прикладу можна навести ''DHTML Object Model'', або реалізацію DOM в веб-переглядачах [[Netscape]] ранніх версій.
; Level 1 : Обхід структури (дерева)
; Level 2 : Підтримка [[XML namespace|просторів імен XML]], фільтрованих представлень та [[DOM Events|подій]].
; Level 3 : Складається із 6 різних специфікацій:
Рядок 24:
Враховуючи існуючі суттєві відмінності у реалізації DOM у веб-браузерах, серед програмістів розповсюджена звичка перевіряти дієздатність тих чи інших можливостей DOM для кожного з браузерів, і тільки потім використовувати їх. Код нижче ілюструє можливість перевірки стандартів W3CDOM перед тим як запускати код, що залежить від результату перевірки.
<source lang="javascript">
if (document.getElementById && document.getElementsByTagName) {
// якщо методи getElementById та getElementsByTagName
// існують, то можна з майже впевнено сподіватись на підтримку W3CDOM.
obj = document.getElementById("navigation")
// далі йде інший код з використанням можливостей W3CDOM.
Рядок 37:
Ще один фрагмент кода JavaScript, що дозволяє перевірити заявлену підтримку різних доповнень DOM у відповідному браузері.
<source lang="javascript">
<html>
<head>
Рядок 91:
</source>
== Модель
[[Файл:DOM_inspector.png|right|thumb|Приклад відображення фрагменту [[DOM]] дерева [[HTML]]
Після аналізу структурованого документа, будується його представлення у вигляді [[Дерево (теорія графів)|дерева]]. Дерево, в моделі DOM, складається із множини зв'язних ''вузлів'' (Node) різних типів. Як правило, розрізняють вузли наступних типів:
* Документ (''Document'')
* Фрагмент документа (''DocumentFragment'')
* Елемент (''Element'')
* Атрибут (''Attr'')
* Текст (''Text'')
Стандартом визначаються і деякі інші типи вузлів
Вузли деяких типів можуть мати гілки, інші ж можуть бути лише листами дерева. Спеціальні методи об'єктів вузлів дають можливість обходу дерева.
Рядок 121:
** [http://www.w3.org/TR/DOM-Requirements/ Document Object Model (DOM) Requirements]
==
* [[DOM Events]]
* [[Simple API for XML|SAX]]
== Зовнішні посилання ==
* [http://www.w3.org/DOM/
* [http://xml.coverpages.org/dom.html Technology Reports]
* [http://xml.com/pub/rg/DOM_Tutorials Tutorials]
Рядок 135:
* [http://mozilla.org/docs/dom/domref/ Gecko DOM Reference]
* [http://developer.kde.org/documentation/library/cvs-api/khtml/html/namespaceDOM.html khtml Library API Documentation]
* Інтерфейси
** [http://xml.apache.org/xerces-c/program-dom.html C++]
** [http://www.w3.org/2003/01/dom2-javadoc/index.html Java]
** [http://interaction.in-progress.com/developer/dom/ Lisp]
** [http://www.philo.de/xml/downloads.shtml Pascal] ([[Kylix]])
|