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 .
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 .
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.
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 .
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 ). .
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.
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 )
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: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.
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.
World Wide Web Consortium (W3C) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Termékek és szabványok |
| ||||||||||||||
Szervezetek |
| ||||||||||||||
TOVÁBB |
| ||||||||||||||
Konferenciák |
|
Web és weboldalak | |
---|---|
globálisan | |
Helyileg | |
Webhelyek és szolgáltatások típusai |
|
Alkotás és karbantartás | |
Elrendezések, oldalak, webhelyek típusai | |
Műszaki | |
Marketing | |
Társadalom és kultúra |