Inicio > AJAX > Document Object Model

Document Object Model

Antes de que existiera el XML, estaba el Document Object Model o DOM, que permitia al desarrollador hacer referencia, obtener y cambiar elementos en una estructura de documento.

Un documento DOM es una coleccion de nodos, o piezas de informacion organizada de manera jerarquica. Esta organizacion permite al desarrollador navegar alrededor del arbol (como esta basado en una estructura jerarquica de informacion se dice que el DOM es basado en arbol tree-based) buscando por informacion especifica. El DOM es una manera de describir esos nodos, sus metodos y propiedades así como las relaciones que hay entre ellos.

En adicion al enfoque de una descripcion conceptual de datos XML, el DOM es una serie de recomendaciones propuestas por el world wide web consortium W3C, comenzo como una manera para los Navgadores Web puedan identificar y manipular elementos en una pagina.

Trabajar con el DOM involucra varias tecnologias que se complementan entre ellas (XPATH, XSLT, JavaScript).

El API (Application Programming Interface ) del dom contiene interfaces que representan todos los diferentes tipos de informacion que pueden encontrarse en un documento XML, tales como elementos y texto, tambien incluye los metodos y las propiedades necesarios para trabajar con estos objetos (clonar, borrar, insertar nodos).

El primer objeto para manejar los nodos del dom fue un ActiveX (Microsoft.XMLDOM) incorporado en la versión 5.0 del IE
Como existen varias versiones del MSXML.DOM al momento de utilizarlo es necesario hacer un script para detectar la versión mas actualizada y mantener el rendimiento mas alto de nuestras aplicaciones.
Nicholas C. Zakas desarrollo una libreria para manejar la compatibilidad llamada zXMLDOM la función que el desarrollo para detectar las versiónes va como la siguiente

function crearDocumento()
{
var versiones_Arr = [ “MSXML2.DOMDocument.5.0”,
“MSXML2.DOMDocument.4.0”, “MSXML2.DOMDocument.3.0”,
“MSXML2.DOMDocument”, “Microsoft.XmlDom”
];
for (var i = 0; i < versiones_Arr.length; i++)
try {
var oXmlDom = new ActiveXObject(versiones_Arr[i]);
return oXmlDom;
}catch (er)
{
//
}
throw new Error(“MSXML no esta instalado.” );
}

Esta función guarda las versiones del objeto MSXML DOM en un arreglo comenzando de la versión mas actual, despues recorre el arreglo e intenta crear el objeto, si el objeto se puede crear entonces se regresa el objeto, si no, el error es atrapado y continua con el siguiente elemento del arreglo, si ningún objeto se puede crear significa que el MSXML no esta instalado genera un error de que el objeto no esta instalado.
Implementación.

var oXMLDom = createDocument();

Por otra parte los desarrolladores de Mozilla Firefox desarrollaron su propia versión del objeto XMLDOM con la diferencia que se enfocaron a una forma mas estandar, desarrollando el objeto como una implementación de JavaScript, con esto se aseguran que cualquier versión de navegador basado en Gecko soporte el objeto.

Para crear un objeto XMLDOM se utiliza el método createDocument() de document.implementation

Este método acepta 3 argumentos
– Una cadena especificando el URI del documento a usar.
– El nombre del nodo raiz del documento
– Tipo de documento (doctype)

ejemplos de implementación:

Documento vacio
var oXMLDom = document.implementation.createDocument(“”,””,null);
Documento con un elemento
var oXMLDom = document.implementation.createDocument(“”,”raiz”,null);
Documento con un nameSpace definido
var oXMLDom = document.implementation.createDocument(“http://sitio.com&#8221;,”raiz”,null);

Los métodos, propiedades y eventos del MSXML Dom se pueden consultar en las siguientes paginas.
Dom
MSDN

Aunque son muy parecidos, entre los dos objetos XMLDOM existen diferencias de métodos, propiedades y eventos; para desarrollar una aplicación Ajax necesitamos implementar codigo que trabaje para los diferentes navegadores o podemos bajar alguna libreria con la programación realizada como la libreria anteriormente mencionada.

Categorías:AJAX
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: