Red de conocimiento informático - Programación de la red - ¿Alguien puede explicar qué es DOM? Para decirlo simple y claramente

¿Alguien puede explicar qué es DOM? Para decirlo simple y claramente

DOM es la abreviatura de Document Object Model. Según la especificación DOM del W3C (http://www.w3.org/DOM/), DOM es una interfaz independiente del navegador, la plataforma y el idioma que le permite acceder a otros componentes estándar de la página. En pocas palabras, DOM resuelve el conflicto entre Javascript de Netscape y Jscript de Microsoft, brindando a los diseñadores y desarrolladores web una forma estándar de acceder a datos, scripts y objetos de capa de presentación en sus sitios.

DOM es una colección de nodos o fragmentos de información organizados en una estructura jerárquica. Esta jerarquía permite a los desarrolladores navegar por el árbol en busca de información específica. Analizar esta estructura generalmente requiere cargar todo el documento y construir la jerarquía antes de poder realizar cualquier trabajo. Debido a que se basa en la jerarquía de información, el DOM se considera basado en árboles o en objetos.

Para documentos particularmente grandes, analizar y cargar el documento completo puede ser lento y consumir muchos recursos, por lo que es mejor utilizar otros medios para procesar dichos datos. Estos modelos basados ​​en eventos, como API simple para XML (SAX), son adecuados para procesar flujos de datos, es decir, procesar datos secuencialmente a medida que fluyen. La API basada en eventos elimina la necesidad de construir el árbol en la memoria, pero no permite a los desarrolladores cambiar los datos en el documento original.

Los modelos como SAX analizarán todo el documento XML secuencialmente de principio a fin. Cuando se encuentre el principio o el final de un nodo, se generará un tiempo. Los programadores pueden registrar controladores de eventos para procesar cada nodo. tratar con.

Por otro lado, DOM también proporciona una API que permite a los desarrolladores agregar, editar, mover o eliminar nodos en cualquier parte del árbol, creando así un programa de referencia. Este modelo se basa en una estructura de datos de árbol, que debe cargar todo el documento o al menos un fragmento de documento bien estructurado antes de su uso

Un analizador es una aplicación de software diseñada para analizar documentos (aquí se refiere a un archivo XML ) y hacer algo específico con esa información. En una API basada en eventos como SAX, el analizador enviará eventos a algún tipo de oyente. En una API basada en árbol como DOM, el analizador construirá un árbol de datos en la memoria.

DOM como API

A partir del nivel 1 de DOM, la API de DOM incluye interfaces para representar todos los diferentes tipos de información que se pueden encontrar en documentos XML. También contiene los métodos y propiedades necesarios para utilizar estos objetos.

El nivel 1 incluye soporte para XML 1.0 y HTML, con cada elemento HTML representado como una interfaz. Incluye métodos para agregar, editar, mover, leer la información contenida en el nodo y más. Sin embargo, no incluye soporte para espacios de nombres XML, que brindan la capacidad de segmentar información en un documento.

DOM Nivel 2 agrega soporte para espacios de nombres. El nivel 2 amplía el nivel 1 al permitir a los desarrolladores detectar y utilizar información del espacio de nombres que puede aplicarse a un nodo. El nivel 2 también agrega varios módulos nuevos para admitir hojas de estilo en cascada, eventos y operaciones de árbol mejoradas.

DOM Nivel 3, actualmente en las etapas finales, incluye un mejor soporte para la creación de objetos Documento (las versiones anteriores dejaban esta tarea a la implementación, lo que dificultaba la creación de aplicaciones universales), soporte mejorado para espacios de nombres, así como nuevos módulos para manejar la carga y el guardado de documentos, la validación y XPath es un medio para seleccionar nodos en XSL Transformation y otras tecnologías XML;

La modularidad del DOM significa que, como desarrollador, debes saber si las funciones que deseas utilizar son compatibles con la implementación DOM que estás utilizando.

Determinar la disponibilidad de funciones

La naturaleza modular de las recomendaciones DOM permite a los implementadores elegir qué partes incluir en el producto, por lo que antes de usar una función específica, primero determine si la función es Puede ser necesaria disponibilidad. Este tutorial solo utiliza la API principal DOM Nivel 2, pero al iniciar sus propios proyectos es útil saber cómo puede detectar funciones.

Una de las interfaces definidas en DOM es DOMImplementation. Puede determinar si una característica específica es compatible utilizando el método hasFeature(). No existe una forma estándar de crear una implementación DOMImplementación en DOM Nivel 2, pero el siguiente código muestra cómo usar hasFeature() para determinar si un módulo de hoja de estilo DOM Nivel 2 es compatible con una aplicación Java.