Dokumentum objektum modell

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2022. augusztus 19-én felülvizsgált verziótól ; az ellenőrzések 30 szerkesztést igényelnek .

A DOM (az angol  Document Object Model  - „Document Object Model” szóból) egy platform- és nyelvfüggetlen programozási felület , amely lehetővé teszi a programok és szkriptek számára a HTML -, XHTML - és XML dokumentumok tartalmának elérését, valamint a tartalom megváltoztatását, az ilyen dokumentumok felépítése és kivitelezése.

A DOM nem ír elő korlátozásokat a dokumentumok szerkezetére vonatkozóan. Bármely ismert szerkezetű dokumentum ábrázolható a DOM-mal csomópontok faként, amelynek minden csomópontja egy elem, attribútum, szöveg, grafika vagy bármilyen más objektum. A csomópontokat szülő-gyermek kapcsolat köti össze.

Kezdetben a különféle böngészőknek saját dokumentummodelljeik (DOM) voltak, amelyek nem kompatibilisek a többivel. A kölcsönös és visszamenőleges kompatibilitás érdekében a W3C nemzetközi konzorcium szakemberei ezt a modellt szintekbe sorolták, amelyek mindegyikéhez saját specifikáció készült. Mindezek a specifikációk egy közös csoportban, a W3C DOM-ban vannak egyesítve.

Egy másik alkalmazásprogramozási felület, a JDOM , magasabb réteget biztosít, mint a W3C DOM a Java XML dokumentumok kezeléséhez .

Történelem

A DOM története összefonódik a „ böngészőháborúk ” történetével az 1990-es évek végén a Netscape Navigator és a Microsoft Internet Explorer között (és a korai JavaScript és JScript szkriptnyelvek között ), mivel széles körben használták a weboldal-elrendezésben .

Hagyományos DOM

A JavaScript programozási nyelvet a Netscape Communications 1995 - ben adta ki a Netscape Navigator 2.0 webböngésző részeként . A Netscape versenytársa, a Microsoft még abban az évben kiadta az Internet Explorer 3.0 -t a JScript nevű JavaScript - porttal . A JavaScript és a JScript lehetővé teszi a fejlesztők számára, hogy kliensoldali interaktív weboldalakat hozzanak létre . A felhasználók által létrehozott események észlelésének és a HTML -dokumentum módosításának korlátozott lehetősége ezeknek a nyelveknek az első generációjában végül „DOM-szint 0” vagy „hagyományos DOM” néven vált ismertté. A 0. DOM-szinthez nem fejlesztettek ki független szabványt, de a HTML4 specifikációban részben leírták .

A hagyományos DOM korlátozott volt az elérhető elemek típusában. Az olyan elemekre, mint a forma ( form ), a hivatkozás ( link ) és a kép ( kép ), hierarchikus nevekkel lehet hivatkozni, amelyek a dokumentumobjektum gyökerénél kezdődtek. A hierarchikus név használhatja a közös elem nevét vagy szekvenciális indexét. Például egy űrlap bemeneti eleme document.formName.inputName vagy document.forms[0].elements[0] néven érhető el.

A hagyományos DOM lehetővé tette az ügyféloldali űrlapellenőrzést és a népszerű "objektum transzformációs" effektust.

Köztes DOM

1997-ben a Netscape és a Microsoft kiadta a webböngészőket, a Netscape Navigator és az Internet Explorer 4.0-s verzióját, amelyek támogatják a dinamikus HTML -t (DHTML), amely lehetővé teszi a HTML -dokumentumok funkcióinak megváltoztatását a betöltésekor. A DHTML kiterjesztéseket igényelt a hagyományos DOM megvalósításban található elemi dokumentumobjektumhoz. Mivel a JScript JavaScripten alapult , a hagyományos DOM-megvalósítások nagyrészt kompatibilisek voltak, de a DHTML DOM-bővítményeit párhuzamosan fejlesztették ki a böngészők minden egyes alkotója, és továbbra is inkompatibilisek maradtak. A DOM ezen verziói „köztes DOM” néven váltak ismertté.

A köztes DOM lehetővé tette a kaszkád stíluslap (CSS) azon tulajdonságainak kezelését, amelyek befolyásolják a dokumentum megjelenítését. Ezenkívül hozzáférést biztosított egy új, "layers" nevű tulajdonsághoz a document.layers ( Netscape Navigatorban ) és document.all ( Internet Explorerben ) tulajdonságokon keresztül. A köztes DOM kezdeti összeférhetetlensége miatt a weblapok fejlesztése minden esetben speciális kezelést igényelt.

A Netscape Navigator későbbi verziói megszüntették a köztes DOM támogatását. Az Internet Explorer továbbra is támogatja a köztes DOM-ot a visszafelé kompatibilitás érdekében .

Szabványosítás

A World Wide Web Consortium (W3C), amelyet 1994 -ben alapítottak a World Wide Web nyílt szabványainak fenntartására és fejlesztésére, a Netscape Communications -t , a Microsoftot , az Apple -t és más vállalatokat arra késztette , hogy kidolgozzanak egy szabványt a böngészőalapú szkriptnyelvekhez , az úgynevezett ECMAScript -hez. . A szabvány első változata 1997 -ben jelent meg . A JavaScript és a JScript későbbi kiadásai megkezdték az ECMAScript szabvány megvalósítását a jobb böngészők közötti kompatibilitás érdekében .

Az ECMAScript megjelenése után a W3C megkezdte a DOM szabványosítási munkálatait. Az eredeti DOM szabványt, más néven DOM Level 1-et, a W3C ajánlotta 1998 végén . Körülbelül ugyanebben az időben jelent meg az Internet Explorer 5.0 korlátozott DOM 1. szintű támogatással. Az 1. DOM szint egy teljes objektummodellt biztosított egy teljes HTML- vagy XML -dokumentumhoz, beleértve a dokumentum bármely részének megváltoztatását is. Az adaptálatlan böngészőket (például: Internet Explorer 4.x , Netscape 4.x) 2000 -ig széles körben használták .

A DOM 2. szintje 2000 végén jelent meg . Bevezette a getElementById függvényt, valamint az eseménymodellt és az XML névtér és a CSS támogatását . A 2004 áprilisában közzétett DOM Level 3 XPath támogatást és billentyűzetes eseménykezelést , valamint egy interfészt adott a dokumentumok XML -ként történő szerializálásához .

2005- ben a W3C DOM nagy részét a nagyobb ECMAScript -kompatibilis böngészők támogatták , köztük az Internet Explorer 6.x ( 2001 ), az Opera , a Safari és a Gecko webmotoron alapuló böngészők ( beleértve a Mozillát , Firefoxot , SeaMonkey -t és Caminot ). .

A DOM megvalósítása webböngészőkben

Tekintettel a DOM webböngészőkben való különféle megvalósításaira, a programozók körében általános szokás , hogy először minden egyes böngészőben ellenőrzik bizonyos DOM-funkciók működőképességét, és csak azután használják azokat. Az alábbi kód bemutatja a böngésző W3C DOM-szabványainak támogatását, mielőtt futtatná a kódot , amely az ellenőrzés eredményétől függ.

if ( document . getElementById && document . getElementsByTagName ) { // ha elérhető a getElementById és getElementsByTagName // metódus, akkor a W3CDOM támogatás viszonylag biztos. obj = dokumentum . getElementById ( "navigation" ) // más kód követi a W3CDOM szolgáltatásait. // …. }

Mivel a DOM bármely területen navigálható (például szülő és előző testvér), és tetszőleges változtatásokat tesz lehetővé, a megvalósításnak legalább egy olyan dokumentumot pufferelnie kell, amelyet (vagy annak valamilyen tervezett formáját) addig olvasták.

Böngészőmotor

Fő cikk: Böngészőmotor

A böngészők a motorjukra támaszkodnak a HTML -fájlok DOM-ba való konvertálásakor (elemzésekor) . Egyes böngészőmotorok, például a Trident/MSHTML , valamilyen módon egy adott böngészőhöz (jelen esetben az Internet Explorerhez ) vannak kötve. Ugyanazok a motorok, mint a WebKit és a Gecko , számos különböző böngészőben használatosak, mint például a Safari , a Google Chrome , a RockMelt , a Firefox vagy a Flock . A különböző böngészőmotorok különböző megfelelőségi szinten támogatják a DOM-szabványokat.

Lásd még: Elrendezési motorok összehasonlítása ( Dokumentumobjektum - modell )

Könyvtárak

W3C DOM szintek

A DOM specifikációk jelenlegi szintje a 2. szint, de a 3. szintű specifikációk egyes részeit a W3C ajánlja.

0. szint Tartalmazza az 1. szint előtt létező összes DOM-ot, például document.images , document.forms , document.layers és document.all . Ne feledje, hogy ezek a modellek formálisan nem a W3C által közzétett DOM-specifikációk, hanem a szabványosítási folyamat megkezdése előtt létező információkkal kapcsolatosak. 1. szint Alapvető DOM-funkciók (HTML és XML) a dokumentumokban, mint például a dokumentumcsomópont-fa beszerzése, az adatok módosításának és hozzáadásának lehetősége. 2. szint Az úgynevezett XML névtér <--filtered view--> és események támogatása. 3. szint Hat különböző specifikációból áll:
  1. DOM Level 3 Core;
  2. DOM 3. szintű betöltés és mentés;
  3. DOM 3. szintű XPath;
  4. DOM 3. szintű nézetek és formázás;
  5. DOM 3. szintű követelmények;
  6. DOM 3. szintű érvényesítés.
Ezek a specifikációk további DOM-bővítmények.

Alkalmazások

Webböngészők

A webböngészőknek nem kell használniuk a DOM-ot egy HTML-dokumentum megjelenítéséhez. A DOM azonban szükséges azokhoz a JavaScript -szkriptekhez , amelyek dinamikusan szeretnének megfigyelni vagy módosítani egy weboldalt. Más szavakkal, a Dokumentumobjektum-modell az az eszköz, amellyel a JavaScript látja a HTML-oldal tartalmát és a böngésző állapotát.

Problémák

A böngésző inkompatibilitása miatt a DOM használata néha HTML-elrendezési nehézségekhez és rossz oldalmegbízhatósághoz vezet.

Specifikációk

Lásd még

Linkek