Document Object Model

Material iz Vikipedii -- svobodnoi entsiklopedii
Tekushchaia versiia stranitsy poka ne proverialas' opytnymi uchastnikami i mozhet znachitel'no otlichat'sia ot versii, proverennoi 19 avgusta 2022 goda; proverki trebuiut 37 pravok.
Pereiti k navigatsii Pereiti k poisku
HTML

DOM (ot angl. Document Object Model -- <>) -- eto ne zavisiashchii ot platformy i iazyka programmnyi interfeis, pozvoliaiushchii programmam i skriptam poluchit' dostup k soderzhimomu HTML-, XHTML- i XML-dokumentov, a takzhe izmeniat' soderzhimoe, strukturu i oformlenie takikh dokumentov.

Model' DOM ne nakladyvaet ogranichenii na strukturu dokumenta. Liuboi dokument izvestnoi struktury s pomoshch'iu DOM mozhet byt' predstavlen v vide dereva uzlov, kazhdyi uzel kotorogo predstavliaet soboi element, tekstovyi, graficheskii ili liuboi drugoi ob'ekt. Uzly sviazany mezhdu soboi otnosheniiami <>.

Iznachal'no razlichnye brauzery imeli sobstvennye modeli dokumentov (DOM), nesovmestimye s ostal'nymi. Dlia obespecheniia vzaimnoi i obratnoi sovmestimosti spetsialisty mezhdunarodnogo konsortsiuma W3C klassifitsirovali etu model' po urovniam, dlia kazhdogo iz kotorykh byla sozdana svoia spetsifikatsiia. Vse eti spetsifikatsii ob'edineny v obshchuiu gruppu, nosiashchuiu nazvanie W3C DOM.

Eshchio odin interfeis prikladnogo programmirovaniia, nazyvaemyi JDOM, obespechivaet bolee vysokii, chem W3C DOM, uroven' dlia raboty s XML-dokumentami na Java.

Istoriia

[pravit' | pravit' kod]

Istoriia DOM perepletaetsia s istoriei <<brauzernykh voin>> v kontse 1990-kh godov mezhdu Netscape Navigator i Microsoft Internet Explorer (i mezhdu pervymi skriptovymi iazykami JavaScript i JScript) za to, chtoby shiroko ispol'zovat'sia v mekhanizme viorstki veb-stranits.

Traditsionnyi DOM

[pravit' | pravit' kod]

Iazyk programmirovaniia JavaScript byl vypushchen firmoi Netscape Communications v 1995 godu v ramkakh veb-brauzera Netscape Navigator 2.0. Konkurent firmy Netscape -- firma Microsoft vypustila pozzhe v tom zhe godu veb-brauzer Internet Explorer 3.0 s portom JavaScript, nazvannym JScript. JavaScript i JScript pozvoliaiut razrabotchikam sozdavat' veb-stranitsy, kotorye byli by interaktivny so storony klienta. Ogranichennye vozmozhnosti obnaruzheniia sozdavaemykh pol'zovatelem sobytii i izmeneniia dokumenta HTML v pervom pokolenii etikh iazykov v itoge stali izvestny kak <> ili <>. Dlia DOM urovnia 0 ne bylo razrabotano nikakogo nezavisimogo standarta, odnako on byl chastichno opisan v spetsifikatsii HTML4.

Traditsionnyi DOM byl ogranichen v tipakh elementov, k kotorym mozhno poluchit' dostup. K takim elementam kak forma (form), ssylka (link) i izobrazhenie (image) mozhno bylo obrashchat'sia s pomoshch'iu ierarkhicheskikh imion, kotorye nachinalis' s kornia ob'ekta dokumenta. Ierarkhicheskoe imia moglo ispol'zovat' libo imia, libo posledovatel'nyi indeks obshchego elementa. Naprimer, element form input mozhet byt' dostupen kak document.formName.inputName ili kak document.forms[0].elements[0].

Traditsionnyi DOM daval vozmozhnost' podtverzhdeniia formy s klientskoi storony i populiarnyi effekt <>.

Promezhutochnyi DOM

[pravit' | pravit' kod]

V 1997 godu firmy Netscape i Microsoft vypustili veb-brauzery, sootvetstvenno, Netscape Navigator i Internet Explorer versii 4.0, dobaviv podderzhku Dynamic HTML (DHTML), predostavliaiushchego vozmozhnost' izmeneniia funktsional'nosti HTML-dokumenta pri ego zagruzke. DHTML treboval rasshirenii dlia elementarnogo ob'ekta document, imevshegosia v traditsionnoi realizatsii DOM. Poskol'ku JScript byl osnovan na JavaScript, traditsionnye realizatsii DOM byli v znachitel'noi stepeni sovmestimy, odnako rasshireniia DOM dlia DHTML byli razrabotany parallel'no kazhdym iz sozdatelei brauzera i ostalis' nesovmestimymi. Eti versii DOM stali izvestny kak <>.

Promezhutochnyi DOM daval vozmozhnost' manipulirovat' svoistvami kaskadnykh tablits stilei (angl. CSS), vliiaiushchimi na otobrazhenie dokumenta. On takzhe obespechival dostup k novomu svoistvu pod nazvaniem <> cherez svoistva document.layers (v Netscape Navigator) i document.all (v Internet Explorer). Iz-za iskhodnoi nesovmestimosti v promezhutochnom DOM razrabotka veb-stranits trebovala spetsial'noi obrabotki dlia kazhdogo sluchaia.

Bolee pozdnie versii Netscape Navigator otkazalis' ot podderzhki promezhutochnogo DOM. Internet Explorer prodolzhaet podderzhku svoego promezhutochnogo DOM dlia obratnoi sovmestimosti.

Standartizatsiia

[pravit' | pravit' kod]
WHATWG DOM

Organizatsiia World Wide Web Consortium (W3C), osnovannaia v 1994 godu dlia podderzhivaniia i razvitiia otkrytykh standartov World Wide Web, zastavila Netscape Communications, Microsoft, Apple i drugie kompanii razrabotat' standart dlia brauzernykh skriptovykh iazykov pod nazvaniem ECMAScript. Pervaia versiia standarta byla opublikovana v 1997 godu. Posleduiushchie vypuski JavaScript i JScript stali realizovyvat' standart ECMAScript dlia luchshei mezhbrauzernoi sovmestimosti.

Posle vykhoda ECMAScript W3C nachala rabotu nad standartizatsiei DOM. Iznachal'nyi standart DOM, takzhe izvestnyi kak <>, byl rekomendovan W3C v kontse 1998 goda. Primerno v eto zhe vremia vyshel Internet Explorer 5.0 s ogranichennoi podderzhkoi DOM urovnia 1. DOM urovnia 1 obespechil polnuiu ob'ektnuiu model' dlia vsego HTML- ili XML-dokumenta, vkliuchaia sposob izmeneniia liuboi chasti dokumenta. Neadaptirovannye brauzery (naprimer: Internet Explorer 4.x, Netscape 4.x) shiroko ispol'zovalis' vplot' do 2000 goda.

DOM urovnia 2 byl opublikovan v kontse 2000 goda. On vviol funktsiiu getElementById, a takzhe model' sobytii i podderzhku XML namespace i CSS. DOM urovnia 3, opublikovannaia v aprele 2004 goda, dobavila podderzhku XPath i obrabotku sobytii klaviatury, a takzhe interfeis dlia serializatsii dokumenta kak XML.

V 2005 godu bol'shaia chast' W3C DOM podderzhivalas' osnovnymi brauzerami, udovletvoriaiushchimi ECMAScript, v tom chisle Internet Explorer 6.x (2001 god), Opera, Safari i brauzerami, osnovannymi na veb-dvizhke Gecko (v tom chisle Mozilla, Firefox, SeaMonkey i Camino).

Realizatsiia DOM v veb-brauzerakh

[pravit' | pravit' kod]

Uchityvaia sushchestvovanie razlichnykh realizatsii DOM v veb-brauzerakh, sredi programmistov rasprostranena privychka sperva proveriat' rabotosposobnost' tekh ili inykh vozmozhnostei DOM dlia kazhdogo konkretnogo brauzera i tol'ko potom ispol'zovat' ikh. Kod nizhe illiustriruet sposob proverki brauzera na podderzhku standartov W3C DOM pered tem, kak zapustit' kod, zavisiashchii ot rezul'tata etoi proverki.


if (document.getElementById && document.getElementsByTagName) {
// esli metody getElementById i getElementsByTagName
// dostupny, to mozhno otnositel'no tochno predpolozhit' podderzhku W3CDOM.

obj = document.getElementById("navigation")
// dalee idiot drugoi kod s ispol'zovaniem vozmozhnostei W3CDOM.
// ....
}

Tak kak DOM podderzhivaet navigatsiiu v liuboi oblasti (naprimer, roditel' i predydushchii brat) i uchityvaet proizvol'nye izmeneniia -- realizatsiia dolzhna po krainei mere buferizirovat' dokument, kotoryi (ili nekotoraia razrabotannaia forma kotorogo) chitalsia do etogo vremeni.

Brauzernyi dvizhok

[pravit' | pravit' kod]

Osnovnaia stat'ia: Brauzernyi dvizhok

Brauzery opiraiutsia na svoi dvizhok, kogda proiskhodit preobrazovanie (parsing) HTML-failov v DOM. Nekotorye brauzernye dvizhki, k primeru, Trident/MSHTML, tem ili inym obrazom imeiut priviazku k opredelionnomu brauzeru (v dannom sluchae, k Internet Explorer). Takie zhe dvizhki kak WebKit i Gecko ispol'zuiutsia vo mnozhestve razlichnykh brauzerov, takikh kak Safari, Google Chrome, RockMelt, Firefox ili Flock. Razlichnye brauzernye dvizhki podderzhivaiut standarty DOM na raznykh urovniakh sootvetstviia.

Sm. takzhe: Comparison of layout engines (Document Object Model) (angl.)

Biblioteki

[pravit' | pravit' kod]

Urovni W3C DOM

[pravit' | pravit' kod]

Tekushchim urovnem spetsifikatsii DOM iavliaetsia Uroven' 2, no tem ne menee nekotorye chasti spetsifikatsii Urovnia 3 iavliaiutsia rekomenduemymi W3C.

Uroven' 0
Vkliuchaet v sebia vse spetsificheskie modeli DOM, kotorye sushchestvovali do poiavleniia Urovnia 1, naprimer, document.images, document.forms, document.layers i document.all. Neobkhodimo obratit' vnimanie, chto eti modeli formal'no ne iavliaiutsia spetsifikatsiiami DOM, opublikovannymi W3C, a skoree iavliaiutsia informatsiei o tom, chto sushchestvovalo do nachala protsessa standartizatsii.
Uroven' 1
Bazovye funktsional'nye vozmozhnosti DOM (HTML i XML) v dokumentakh, takie kak poluchenie dereva uzlov dokumenta, vozmozhnost' izmeniat' i dobavliat' dannye.
Uroven' 2
Podderzhka tak nazyvaemogo prostranstva imion XML <--filtered views--> i sobytii.
Uroven' 3
Sostoit iz shesti razlichnykh spetsifikatsii:
  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.
Eti spetsifikatsii iavliaiutsia dopolnitel'nymi rasshireniiami DOM.

Prilozheniia

[pravit' | pravit' kod]

Veb-brauzery

[pravit' | pravit' kod]

Veb-brauzery ne obiazany ispol'zovat' DOM, chtoby ispolniat' HTML-dokument. Odnako DOM trebuetsia dlia skriptov JavaScript, kotorye zhelaiut nabliudat' ili izmeniat' veb-stranitsu dinamicheski. Drugimi slovami, Document Object Model -- eto instrument, s pomoshch'iu kotorogo JavaScript vidit soderzhimoe HTML-stranitsy i sostoianie brauzera.

Problemy

[pravit' | pravit' kod]

Iz-za nesovmestimosti brauzerov ispol'zovanie DOM inogda privodit k trudnostiam HTML-viorstki i nizkoi nadiozhnosti stranits.

Spetsifikatsii

[pravit' | pravit' kod]

Sm. takzhe

[pravit' | pravit' kod]

Ssylki

[pravit' | pravit' kod]
Produkty
i standarty
Rekomendatsii
OOSO
Rabochie proekty
Rukovodstva
Initsiativy
Vyvedennye
iz ispol'zovaniia
Ustarevshie
Organizatsii
Rabochie gruppy
Gruppy soobshchestva i biznesa
Zakryvshiesia gruppy
PO
Brauzery
Konferentsii
Istochnik -- https://ru.wikipedia.org/w/index.php?title=Document_Object_Model&oldid=151106592