Objektni model dokumenta (skraćeno DOM od engl. Document object model) je višeplatformski i jezik sa nezavisnom konvencijom za zastupanje i interakciju sa objektima u HTML, XHTML i XML dokumentima u objektima. DOM stabla mogu biti adresirana i manipulisana upotrebom metoda nad objektima. Javni interfejs DOM-a je naveden u interfejsu za programiranje aplikacija (API). Istorija objektnog modela dokumenta se prepliće sa istorijom "ratova Veb pretrazivača" od kraja 1990-ih između Netscape Navigator-a i Microsoft Internet Explorer-a, kao i sa JavaScript i JScript, kao prvim skript jezicima za široku primenu u 'prikazivačkim mašinama' Veb pregledača.

Objektni model dokumenta

Istorija уреди

Zastareli DOM уреди

JavaScript je izdat od strane Netskejp-a (Netscape Comunications), 1996 uz Netskejp Navigator 2.0 (Netscape Navigator 2.0). Netskejpov konkurent, Majktosoft (Microsoft) objavio je Internet Explorer 3.0 kasnije iste godine sa priključkom JavaScript-a zvanim JScript. JavaScript i JScript su omogućili da Veb programeri kreiraju Veb c sa interakcijom na strani klijenta. Ograničen kapacitet za otkrivanje korisnički generisanih događaja i dopuna HTML dokumenata u prvoj generaciji ovih jezika na kraju postaje poznat kao "DOM Nivoa 0" ili "Zastareli DOM". Nezavisni standardi su razvijeni za DOM nivoa 0, ali je delom opisan u specifikaciji HTML-a 4.

Zastareli DOM je ograničen na određene vrste elemenata koje bi bile dostupne. Forma, linkovi i slike mogu biti označeni hijerarhijskim imenom koje počinje sa predmetom korena dokumenta. Hijerarhijsko ime može da koristi imena ili sekvencijalni indeks prethodnih elemenata. Na primer,ulaznom elementu forme može da se pristupi sa "document.formName.inputName" ili "document.forms[0]elements[0].".

Zastareli DOM je omogućio klijentskoj strani validaciju forme i popularan "prenesi" efekat.

Srednji DOM уреди

Godine 1997, Netskejp (Netscape) i Majkrosoft (Microsoft) su objavili verziju 4.0 Netscape Navigator-a i Internet Explorer-a, dodajući podršku za dinamički HTML (DHTML), koji omogućava izmene učitanom HTML dokumentu. DHTML sadrži potrebna proširenja za rudimentarne objekte dokumenta koji je dostupan u implementacijama zastarelog DOM-a. Iako su implementacije zastarelog DOM-a uglavnom kompatibilne, jer je JScript zasnovan na JavaScript-u, DHTML DOM ekstenzije su razvijane paralelno sa razvojem svih pregledača i ostale nespojive. Ove verzije DOM-a postaju poznate kao "Srednji DOM."

Standardizacija уреди

WWW Konzorcijum (World Wide Web Consortium, W3C), osnovan 1994. radi promovisanja otvorenih standarda za svetsku mrežu (World Wide Web, WWW), okupio je Netscape Coummunications i Microsoft zajedno sa ostalim kompanijama radi razvijanja standarda za skriptne jezike pregledača, nazvanih "ECMAScript". Prva verzija standarda je objavljena 1992. Naknadna izdanja JavaScript i JScript će implemetirati ECMAScript standard radi veće kompatibilnosti između pregledača.

Posle objavljivanja ECMAScript-a, W3C je počeo da radi na standardizaciji D0OM-a. Inicijalni DOM standard, poznat kao "DOM nivoa 1" je preporučivan od strane W3C krajem 1998. Otprilike u isto vreme, Internet Explorer 5.0 je stigao sa ograničenom podrškom za DOM Nivoa 1. DOM nivoa 1 je omogućavao kompletan model za ceo HTML ili XML dokument, uključujući i sredstva za menjanje bilo kog dela dokumenta. Neusaglaseni pregledači kao što su Internet Explorer 4.x i Netscape 4.x su se i dalje koristili u velikom broju sve do 2000. godine.

DOM nivoa 2 je objavljen krajem 2000. Predstavio je funkciju "getElementById" kao i model događaja i podršku za XML rezervisan (imenski) prostor i CSS.

DOM nivoa 3, trenutno izdanje DOM specifikacije, objavljen u Aprilu 2004 je dodao podršku za XPath i obradu događaja tastature.

DOM nivoa 4 se trenutno razvija. Razvojna verzija 6 je realizovaa u Decembru 2012.

Aplikacije уреди

Internet pregledači уреди

Da bi preveli dokument kao što je HTML stranica većina internet pregledača koristi interni model sličan DOM-u. Čvorovi svakog dokumenta su organizovani u strukturu stabla, koje se naziva DOM stablo, gde se najviši čvor stabla naziva "Objekat dokumenta". Kada se HTML stranica prevodi u internet pregeldaču, pregledač skida stranicu u lokalnu memoriju i atuomatski je parsira da bi je prikazao na ekranu. DOM je takođe način na koji JavaScript prenosi stanje pregeldača u HTML stranicama.

Impelementacija уреди

Zbog činjenice da DOM podržava navigaciju u bilo kom smeru(npr. roditelj i prethodni rođak) i dozvoljava arbitrarne izmene, implementacija mora makar da baferuje dokument koji je pročitan do sada (ili neku parsiranu formu njega).

Prikazivačke mašine уреди

Internet pregledači se oslanjaju na prikazivačke mašine da bi parsirali HTML u DOM. Neke mašine kao sto su Trident/MSHTML i Presto su povezane primarno ili ekskluzivno sa određenim internet pregledačima kao što su Internet Explorer i Opera. Drugi, kao sto su WebKit i Gecko, su korišćeni od strane mnogih internet pregledača kao što su Google Chrome, Firefox i Safari. Različite mašine implementiraju DOM standarde u različitim stepenima sagalasnoti.

Reference уреди

Literatura уреди

Spoljašnje veze уреди