Model d'Objectes del Document: diferència entre les revisions

Contingut suprimit Contingut afegit
m neteja i estandardització de codi
m Tipografia
Línia 2:
 
Altres alternatives de traducció que també caldria considerar són "Model Objectual de Document(s)" i també "Model d'Objecte-Document".
</ref> DOM en anglès i emprat ací com a referència acrònima) és una Interfície de Programació d’Aplicacionsd'Aplicacions ([[API]]) per a documents [[HTML]] i [[XML]], una convenció [[multiplataforma]] i independent del [[llenguatge de programació]] que serveix per a representar documents HTML, [[XHTML]] i XML i interaccionar-hi a través d'[[Objecte (programació)|objectes]]. Proporciona una representació de l'estructura del document, la qual cosa permet al programador de modificar-ne el contingut i la presentació visual. En essència, comunica pàgines web amb guions (scripts) o llenguatges de programació. La historia del Model d’Objectesd'Objectes de Document està estretament relacionada amb la història de la “[[Guerra de navegadors]]” de finals dels anys 1990 entre el [[Netscape Navigator]] i [[Microsoft Internet Explorer]], i també amb la de [[JavaScript]] i [[JScript]].
 
Totes les propietats, mètodes i esdeveniments disponibles per a la manipulació i creació de pàgines web estan organitzats en objectes (per exemple, l'objecte de document que representa el document en si, l'objecte de taula que representa un element de taula HTML, i així successivament). En la majoria dels últims navegadors web aquests objectes són accessibles a través de [[llenguatge de script|llenguatges de script]]. El DOM s'utilitza molt sovint en combinació amb JavaScript. No obstant això, com ja s'ha indicat, el DOM va ser dissenyat per ser independent de qualsevol llenguatge de programació en particular, a fi de proporcionar una representació estructural del document a partir d'una API única i consistent. Les implementacions del DOM, doncs, es poden fer per a qualsevol llenguatge de programació.
Línia 8:
== Història ==
=== El DOM antiquat ===
El llenguatge JavaScript fou publicat per [[Netscape Communications Corporation]] el 1996 dins del Navegador de Netscape 2.0. El mateix any, el competidor de Netscape, [[Microsoft]], va treure, amb l'[[Internet Explorer 3.0]], un port del llenguatge de programació JavaScript, anomenat JScript. JavaScript i JScript van permetre als [[desenvolupador de programari|desenvolupadors de programari]] crear pàgines web amb una interactivitat de tipus [[Costat-client]]. Les limitades capacitats per a detectar esdeveniments generats per l’usuaril'usuari i per a modificar el document HTML en la primera generació d’aquestsd'aquests llenguatges de programació aviat varen ser conegudes com a "DOM Level 0" o “DOM antiquat (''legacy,'' en anglès)". No es va desenvolupar cap estàndard independent per al DOM Level 0, però en part va ser descrit en l’especificaciól'especificació d’d'[[HTML 4]].
 
El DOM antiquat era limitat quant als tipus d'elements a què es podia accedir. Els elements [[formulari web]], [[Enllaç (informàtica)|enllaç]] i imatge es referenciaven amb un nom jeràrquic que començava amb el document objecte arrel. Aquest nom jeràrquic podia fer ús tant dels noms dels elements recorreguts com de llur índex seqüencial. Per exemple, es podia accedir a l'element [[caixa de text]] bé com a "document.formName.inputName" ("document.nomDeLaCaixa.nomDeLEntrada") o bé com a “document.forms[0].elements[0]" ("document.caixes[0].elements[0]").
Línia 18:
 
=== Estandardització ===
El [[World Wide Web Consortium]] (W3C), fundat el 1994 per promoure [[estàndards oberts]] per a la [[World Wide Web]], va reunir Netscape Communications i Microsoft amb altres empreses a fi de desenvolupar un estàndard per a llenguatges de scripting destinat a navegadors, anomenat "[[ECMAScript]]." La primera versió de l’estàndardl'estàndard es va publicar el 1997. Les següents versions de JavaScript y JSCRIPT van incorporar l’estàndardl'estàndard ECMAScript per a una major compatibilitat entre navegadors.
 
Després de presentar l'ECMAScript, el W3C va començar a treballar en un DOM estandarditzat. El primer estàndard DOM, conegut com a “DOM Level 1”, va ser establert pel W3C a finals de 1998. Gairebé al mateix temps, l'Internet Explorer 5.0 incorporava funcionalitats limitades per al DOM Level 1. El DOM Level 1 proporcionava un model complet d'un document HTML o XML sencer, incloent-hi els mitjans per canviar qualsevol part del document. Alguns navegadors no totalment compatibles, com l'Internet Explorer 4.x i el Netscape 4.x encara es feien servir l’anyl'any 2000.
 
El DOM Level 2 es va publicar a finals de l’anyl'any 2000. Incloïa l’opciól'opció “[[getElementById]]" així com un [[model d'esdeveniments]] i funcionalitats per a [[espais de noms XML]] i CSS.
 
El DOM Level 3, la versió actual de l'especificació DOM, publicat a l’abrill'abril del 2004, permet emprar [[XPath]] i també manipular esdeveniments de teclat, així com fer servir una interfície de [[serialització]] per a documents XML.
 
El DOM Level 4 s’estàs'està desenvolupant en l'actualitat. El projecte de la versió 6 va sortir al desembre de 2012.
 
== Usos del DOM ==
=== Navegadors web ===
Les representacions d'un document en forma de pàgina HTML que fa la majoria de navegadors web es duen a terme amb un model intern similar al DOM. Els nodes del document estan organitzats en una [[estructura arbòria]], anomenat l'arbre DOM, amb el node superior anomenat "objecte Document". Quan una pàgina HTML és representada pel navegador, aquest descarrega primer el codi HTML a la memòria local i després l’analitzal'analitza ("''parseja"'') automàticament per després mostrar-ne el contingut ja formatat com una pàgina a la pantalla. El DOM és també la forma en què el JavaScript transmet l'estat del navegador a pàgines HTML.
 
== Implementacions ==
Línia 40:
* [[libxml2]]
* [[MSXML]]
* [[Xerces]] és un conjunt d’implementacionsd'implementacions del DOM escrit en C++, Java i Perl
* XML per <SCRIPT> és una implementació del DOM basada en l'API de JavaScript que exposa implementacions DOM:
* [[JAXP]] (Java API for XML Processing) és una API per accedir als proveïdors del DOM