SlideShare una empresa de Scribd logo
1 de 76
INTRODUCCIÓN A DOM
Javier Oliver Fulguera

Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
DOM
1.  Introducción
2.  Estructura jerárquica de DOM
3.  Estructura de documentos Elementos
4.  Estructura de Documentos Subelementos
5.  Estructura de Documentos Atributos
6.  Modelo de Herencia Principales Interfaces
7.  Nodo Documento
8.  Nodos del árbol
9.  Nodos del árbol Campos Genéricos
10. Ejemplo
1.  Calcular nº párrafos de un documento
2.  Lista de nodos

11. Manipulación del árbol
1.  Ejemplo de Manipulación
2.  Ejemplo de manipulación de atributos

12. Conclusiones: DHTML
13.  Ejemplo de parseo XML con Java
14.  Ejemplo de parseo XML com JavaScript
Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
Introducción
l  DOM (Document Object Model) = Interfaz común
para trabajar con objetos de un documento
l  Documentos XML son tratados como un árbol de nodos
l  Cada elemento es un “nodo”
l  Los elementos hijos y el texto contenido dentro de un
elemento son subnodos
l  W3C DOM Site: http://www.w3.org/DOM/
l  DOM Java Language Binding:
http://www.w3.org/TR/DOM-Level-2-Core/javabinding.html

Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
Introducción
l  No se especifica cómo tiene que ser la implementación
de ese árbol de nodos.
l  Solo tiene que cumplir una interfaz
l  Implementaciones en Java, ECMAScript, C, C++,
Python, etc.

Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
Estructura jerárquica de DOM
l  En DOM, un documento XML se representa como un árbol
l  DOM proporciona métodos, clases e interfaces para acceder y manipular
el árbol
<html>
<head>
<title>Ejemplo</title>
</head>
<body>
<h1>Cabecera</h1>
<p>Un párrafo</p>
</body>
</html>

Javier Oliver Fulguera
Estructura de documentos Elementos

<p>Un párrafo</p>

Element: p

Text: Un párrafo

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Estructura de Documentos Subelementos

<p>Un párrafo
<b>marcado</b>
</p>

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Estructura de Documentos Atributos

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Modelo de Herencia
Principales Interfaces

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Nodo Documento
l  El nodo documento representa el documento entero
¡  Métodos de búsqueda:
l  documentElement devuelve el elemento raíz
l  getElementByID devuelve el elemento a partir de un ID
l  getElementsByTagName devuelve los elementos a partir de una
etiqueta dada
¡  Métodos factoría (para crear nodos)
l  createElement
l  createAttribute
l  createComment
l  ...

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Nodos del árbol
l  El interfaz Node representa nodos del árbol
¡  Todos los demás heredan de Node

l  Funcionalidad básica de manipulación del árbol
¡  Recorrido:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Nodos del árbol
Campos Genéricos
l  nodeName: DOMString
¡ Nombre del nodo (valor de la etiqueta)
l  nodeValue : DOMString
¡ Valor del nodo (si es un elemento, nulo, si es un atributo, valor)
l  attributes: NamedNodeMap
¡ Lista de atributos del nodo
l  Los valores dependen del tipo de nodo

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo
Calcular nº párrafos de un documento

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Lista de nodos
l  El interfaz NodeList indica una lista de nodos
l  Los ítems son accedidos mediante el índice
¡  Ej. item(0), item(1), etc.
¡  length indica el número de ítems

l  Ejemplo de recorrido:
for (int i=0; i < listaNodos.length; i++)
procesa(item(i));

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de lista de nodos

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Manipulación del árbol
l  appendChild añade un hijo
l  insertBefore inserta un hijo antes que otro
l  cloneNode devuelve duplicado de nodo actual
¡ Argumento booleano (true = subelementos)

l  removeChild elimina un hijo
l  replaceChild substituye un hijo por otro
l  hasAttributes indica si tiene atributos
l  hasChildNodes indica si tiene hijos

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de Manipulación
l  Clonar primer elemento y ponerlo al final

// Clonar primer elemento y ponerlo al final
function clona() {
var raiz=document.documentElement;
var cuerpo=raiz.getElementsByTagName("body")[0];
var texto=cuerpo.firstChild;
var textoNuevo=texto.cloneNode(true);
cuerpo.appendChild(textoNuevo);
}

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de manipulación de atributos
l  Cambiar fuente a Arial y color a Azul

function ponArial() {
var raiz=document.documentElement;
var cuerpo=raiz.getElementsByTagName("body").item(0);
var parrafo2=cuerpo.getElementsByTagName("p").item(1);
var fuente=parrafo2.getElementsByTagName("font").item(0);
fuente.setAttribute("face","arial");
fuente.setAttribute("color","blue");
}

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
DHTML
l  DHTML podría definirse como Javascript + DOM + CSS
1. 
2. 
3. 
l 

JavaScript contiene código de control (ejemplo: temporizadores)
DOM ofrece interfaz para acceder al documento
CSS ofrece hojas de estilos (incluidas capas)
Ejemplos
¡ 
¡ 
¡ 
¡ 
¡ 

Controlar visibilidad de elementos
Mover elementos en una página
Modificar imágenes al avanzar con el cursor
Controlar interacción con el usuario (formularios)
Algunos efectos visuales atractivos (o no...)

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de XML y JAVA
l  pelis.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<Peliculas>
<Pelicula codigo='1' titulo='Lo que el viento se llevó'
director='Victor Fleming'
actores='Clark Gable, Vivien Leigh, Leslie Howard'/>
<Pelicula codigo='2' titulo='Los Otros'
director='Alejandro Amenabar'
actores='Nicole Kidman'/>
<Pelicula codigo="5" titulo="Malena"
director="Giuseppe Tornatore"
actores="Monica Bellucci, Giuseppe Sulfaro"/>
</Peliculas>
Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de XML y JAVA
Root

Películas

...

Película

codigo=1

diirector=’Victor Fleming’

titulo=’Lo que el
viento se llevó’

actores=’Clark Gable, Vivien
Leigh, Leslie Howard’

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es

Película

codigo=5

diirector=’Giuseppe
Tornatore’

titulo=’Malena’

actores=’Monica Bellucci,
Giuseppe Sulfaro’
Ejemplo de XML y JAVA

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de XML y JAVA

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de XML y JAVA
l  Resultado:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de XML y JavaScript
<?xml version="1.0" encoding="ISO-8859-1"?>
<Root>
<descarga id="1">
<titulo>Libros Java</titulo>
<ruta>http://slob.org</ruta>
<hits>2546</hits>
</descarga>
<descarga id="2">
<titulo>Libros C Sharp</titulo>
<ruta>http://sharp.net</ruta>
<hits>1654</hits>
</descarga>
</Root>

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de XML y JavaScript
l  JavaScript en página HTML

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
Ejemplo de XML y JavaScript
l  Resultado

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
INTRODUCCIÓN A AJAX
Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es

Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
INTRODUCCION A AJAX
l  1. Introducción
l  2. Anatomía de una interacción Ajax.
l  3. El objeto XMLHttpRequest
l  4. El proceso Cliente-Servidor
l  5. Nuestro primer ejemplo con AJAX
l  6. Sintaxis básica para los métodos GET/POST
l  7. Recibiendo los resultados del procesador
l  8. Re-renderizando elementos
l  9. Ejemplos

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
1. Introducción
l  Usando Javascript una página Html puede de forma asíncrona realizar
llamadas al servidor desde el que se ha descargado y cargar contenidos
formateados bien como XML o como texto. Con esta información
Javascript puede enriquecer las páginas pudiendo realizar actualizaciones
online, recarga dinámica de forma sencilla, etc.
l  El término asíncrono va a hacer referencia a la posibilidad de poder
realizar llamadas no bloqueantes desde el navegador, lo que nos permite
interaccionar de forma efectiva sin tener que hacer envíos y recepciones de
la página actual.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
1. Introducción
l  Para este fin surge el término AJAX (Asynchronous JavaScript Technology
and XML) como tecnología que describe este modelo de interacción.
l  Ajax no es nuevo. Pero lo que ha cambiado y ha potenciado estas técnicas
es la inclusión del objeto XMLHttpRequest en los motores de
javascript de los browsers con un comportamiento estandarizado.
l  Lo que hace diferente a los clientes Ajax es que los clientes contienen
lógica de control específica embebida dentro de su tecnología
Javascript.
l  La interacción de Ajax va a permitir una clara separación entre la
lógica de presentación y los datos.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
1. Introducción
l  Ajax requiere un cambio arquitectural respecto a los modelos Html.
Tradicionalmente una página desde la perspectiva del servidor está
especializada en la generación del Html para cada cliente que realiza una
llamada al servidor. Cuando se requiere interacción los clientes refrescan y
re-renderizan una página Html completa para cada request.
l  El modelo de Ajax difiere, ya que realiza una carga de un Html que hace
de contenedor.
l  Dicho contendor integra contenidos que están expuestos en el servidor
como documentos XML, y para ello se basa en eventos del cliente. Es
decir, que un evento del cliente va a provocar una re-renderización
parcial del Html, pero no del documento completo.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
1. Introducción
l  Algunos casos de interacción de Ajax pueden ser:
1. Validación en tiempo real de datos de un
formulario.
2. Auto completado de datos de un formulario.
3. Carga bajo demanda.
4. Controles y efectos sofisticados para la interfaz
de usuario.
5. Refresco de datos y envío a servidor.
6. Submit parciales.
7. Mashups.
8. Modelo de aplicación basado en una página.
Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
2. Anatomía de una interacción Ajax.
l  Una aplicación web contiene una página Html estática o bien generada vía una
Jsp. Dicha página contiene un formulario que requiere una validación de sus
datos sin refrescar la página y sin hacer un submit. Supongamos que tenemos
un servlet llamado ValidateServlet que provee la validación lógica. La figura
describe en detalle la interacción que se produce entre la página y el servidor:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
2. Anatomía de una interacción Ajax.
l  La secuencia que se sigue consiste en:
1.  Ocurre un evento del cliente
2.  Un objeto XMLHttpRequest se crea y configura
3.  La petición se procesa por el ValidateServlet
4.  El ValidateServlet devuelve un XML que contiene el resultado
5.  El objeto XMLHttpRequest llama a la función de callback y procesa el
resultado
6.  El HTML Dom se actualizado

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
3. El objeto XMLHttpRequest
l  El objeto XMLHttpRequest es un objeto nativo del browser que es
indispensable crearlo caso contrario ni se podrá comenzar las aplicaciones.
Vamos a partir del objeto desde la creación y veremos sus métodos y
propiedades.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
3. El objeto XMLHttpRequest
l Creando el objeto XMLHttpRequest.
l Muchos navegadores requieren una forma diferente de invocar al objeto
XMLHttpRequest. Vamos a mostrar un método estándar de hacerlo.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
3. El objeto XMLHttpRequest
l  Para obtener un objeto en javascript nos bastará con poner
ajax=getObjetoHTTP() .
l  Métodos
l  A continuación los métodos del objeto.
¡  abort(): Detiene la petición en curso.
¡  getAllResponseHeaders() : Devuelve todas las cabeceras de la respuesta
(etiquetas y valores) como una cadena.
¡  getResponseHeader(etiqueta) : Devuelve el valor de la etiqueta en las
cabeceras de la respuesta.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
3. El objeto XMLHttpRequest
¡  open(método, URL, asíncrona, usuario, password) : Abre una conexión con
esa URL mediante el método (GET,POST,HEAD o DELETE), tiene 5 parámetros
de entrada, las 2 primeras (método, URL) son obligatorios:
l  método: El método que se usará para la conexión (GET,POST,HEAD o DELETE).
URL: La URL que se llamará para el proceso.
l  Las 3 restantes (asíncrona, usuario, password) son opcionales:
l  asíncrona: Valor booleano, true indica que el proceso se ejecutará sin parar la
aplicacion en curso (Background) false indica que se detendrá el proceso hasta que se
termine el proceso de manera correcta.

¡  send(contenido) : Envía el contenido al servidor.
¡  setRequestHeader(etiqueta,valor) : Establece el valor de una etiqueta de las
cabeceras de petición.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
3. El objeto XMLHttpRequest
l  A continuación las propiedades del objeto.
¡  onreadystatechange : Contiene el nombre de la función que se
ejecuta cada vez que el estado de la conexión cambie.
¡  readyState : Estado de la conexión.
Código à Estado

1 à Cargando
2 à Cargado, pero sin su contenido incorporado a los objetos
correspondientes
3 à Incorporando a los objetos correspondientes
4 à Carga completada
¡  responseText : Datos devueltos por el servidor en formato cadena.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
3. El objeto XMLHttpRequest
¡  responseXML : Datos devueltos por el servidor en forma de
documento XML que puede ser recorrido mediante las funciones del
DOM (getEementsByTagName, etc).
¡  status : Código enviado por el servidor.
Código à Valor

200 à Completado con éxito
404 àNo se encontró URL
414 à Los valores pasados por GET superan los 512 bytes
¡  statusText : Mensaje de texto enviado por el servidor junto al código
(status), para el caso de código 200 contendrá "OK".

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
4. El proceso Cliente-Servidor
l  Cuando nuestro cliente se comunica con el servidor, éste no recibirá
variables para su uso o modificación, sino que lo que el cliente recibe del
servidor es aquello que el servidor suelta; es decir nosotros tenemos que
codificar la página llamada para que nos devuelva aquello que
necesitaremos (XML, etc.)
l  Veamos un ejemplo:
¡  Tenemos un AjaxServlet.java que recibirá variables por el método GET.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
4. El proceso Cliente-Servidor

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
4. El proceso Cliente-Servidor
l  Si ponemos http://localhost:8080/AjaxProyect/AjaxServlet?mensaje=1 el archivo
soltará:
¡  Enviaste el valor 1

l  Si ponemos http://localhost:8080/AjaxProyect/AjaxServlet?mensaje=2 el archivo
soltará:
¡  Enviaste el valor 2

l  Si ponemos http://localhost:8080/AjaxProyect/AjaxServlet?mensaje=5345 el
archivo soltará:
¡  No enviaste ningun valor ACEPTABLE

l  Si no le damos variables http://localhost:8080/AjaxProyect/AjaxServlet el archivo
soltará:
¡  No se ha enviado valor alguno de petición.

l  Por tanto lo que debemos hacer es que nuestros archivos Clientes entiendan la línea
y la manera de procesar la información que nuestro servidor va a tener. Un aspecto a
tener en cuenta es que al realizar la petición se pueden crear variables de sesión,
cookies, consultas SQL, con lo que disponemos de muchas opciones para
montar las soluciones que necesitamos.
Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
4. El proceso Cliente-Servidor
l  Ejemplo:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
l  Como primer ejemplo no haremos el típico HOLA MUNDO enviaremos una
petición a nuestro procesador que nos arrojará nuestro IP, PATH y date()
usando el método GET.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
l  Lado del cliente:
¡  Escribimos es JavaScript necesario para obtener el objeto XMLHttpRequest

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
l  Lado del cliente:
¡  Escribimos la función JavaScript a ejecutar:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
l  Lado del cliente:
¡  Escribimos el html para ejecutar la función::

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
l  Lado del servidor:
¡  Nuestro procesador trabajará según la variable funcion que reciba por el
método GET

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
l  Ejecutar ejemplo1:
l  Analizando la función primer_tope():
¡  Fuera de lo que es la funcion getObjetoHTTP() analizaremos nuestra función
que se encargó del envío y recepcion de datos.

1.  _objetus= getObjetoHTTP()
Llamamos al objeto XMLHttpRequest

2.  _values_send="funcion=pt"
Cargamos todas las variables que se van a enviar

3.  _URL_=“AjaxServletInfo?"
La URL donde nos comunicaremos (Nótese el ? al final del archivo)

4.  _objetus.open("GET",_URL_+"&"+_values_send,true);
La parte más importante, aquí abrimos la URL con los valores cargados o sea
AjaxServletInfo?funcion=pt

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
5.  _objetus.onreadystatechange=function() {
Invocamos la propiedad onreadystatechange, entonces cuando el objeto llegue a este punto se
llamará a una funcion que gestionará el resto del proceso.

6.  if (_objetus.readyState==4)
{
Llamamos ahora a la propiedad readyState que nos indicará en que estado se encuentra el
proceso, entonces cuando el estado sea 4 (Terminado) hacemos LO QUE SE NOS
OCURRA.

7.  if(_objetus.status==200)
{
Si el estado del proceso arroja un status 200 significa que a terminado con éxito.

8.  window.alert(_objetus.responseText);
En este caso llamamos a la propiedad responseText que tiene lo que el procesador soltó y lo
mostramos mediante un alert.

9. 

}
}
}
_objetus.send(null);
}
Y por último enviamos null porque hemos enviado todas las variables que nos interesaban
automáticamente al abrir AjaxServletInfo?funcion=pt.

_objetus.send(null) : Es obligatorio, si no se envia algo el proceso no funciona
Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
l  Ejecución:

l  Resultado:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
5. Nuestro primer ejemplo con AJAX
l  Para enviar la petición por el método POST.

Nótense las diferencias con el método GET
Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
7. Recibiendo los resultados del
procesador
l  Hay dos maneras en las que se puede recibir la informacion
devuelta por el procesador, las propiedades: responseText y
responseXML

1.  responseText: Con esta propiedad se reciben los datos de la
siguiente manera:
Cuando el estado del proceso esté en el nivel 4
vari=objetus.responseText
l  Entonces aqui la variable vari contendrá el resultado del
procesador.
Ejemplo:
window.alert(vari)
l  Esto es lo que usamos en nuestro primer ejemplo, aqui cuando el
proceso llega a nivel 4 creamos un alert con los datos que nos a
enviado el procesador.
Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
7. Recibiendo los resultados del
procesador
2.  responseXML: Con esta propiedad el procesador nos devuelve los
datos como XML y debemos recorrerlo mediante las funciones del
DOM (getEementsByTagName, etc).
vari=objetus.responseXML
l  Guardamos el documento devuelto en la variable vari para luego
recorrerla,en el caso para nuestro ejemplo el documento XML del
procesador tendrá la siguente estructura:
<serv>
<ip>ip</ip>
<path>path </path>
<date>date</date>
</serv>
var _ip = vari.getElementsByTagName('ip').item(0).firstChild.data;
var _path= vari.getElementsByTagName(‘path').item(0).firstChild.data;
var _date = vari.getElementsByTagName('date').item(0).firstChild.data;
window.alert(_ip+"n"+_path+"n"+_date)
Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
7. Recibiendo los resultados del
procesador
l  En el lado del cliente:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
7. Recibiendo los resultados del
procesador
l  En el lado del servidor:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
7. Recibiendo los resultados del
procesador
l  Ejecución:

l  Resultado:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
8. Re-renderizando elementos
l  Hasta ahora hemos manejado los datos que nos llegaban del procesador
viendolos con un alert (window.alert(respuesta)) pues bien ahora vamos a
"embeder" los resultados en nuestras páginas, tenemos 2 maneras de
llamar al elemento donde se pondrá el nuevo contenido:
l  document.getElementById("elementID") :
Llamaremos al elemento por el ID
<div id="nombreid" ></div>

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
8. Re-renderizando elementos
l  Entonces vamos a cambiar nuestro window.alert(respuesta) por
document.getElementById(target) aplicandole la propiedad innerHTML,
quedandonos:
target="nombreid";
document.getElementById(target).innerHTML = _objetus.responseText;

l  document.getElementsByTagName("tagName") :
¡  Llamaremos al elemento por su tag name.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
8. Re-renderizando elementos
l  Del lado del cliente:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
8. Re-renderizando elementos
l  Resultado:

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
9. Ejemplos
l  Ejemplo5 (Añadir Filas a Tabla)
¡  Añade un fila a una tabla con los datos del servidor
con Dom

l  Ejemplo6 (Mostrar lista en XML)
¡  Muestra una lista de objetos parseados en XML con DOM

l  Ejemplo7 (Evento onkeyup)
¡  Escribe datos del servidor al pulsar una tecla sobre una caja de texto

l  Ejemplo8 (AutoCompletar)
¡  Autocompleta una caja de texto con una lista de valores de una tabla de la base
de datos.

Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
9. Ejemplos
l  Ejemplo5. Cliente

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo5. Servidor

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo5. Resultado

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo6. Cliente

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo6. Servidor

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo6. Resultado

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo7. Cliente

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo7. Servidor

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo7. Resultado

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo8. Cliente
¡  (Se adjunta debido a su extensión)

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo8. Servidor

Javier Oliver Fulguera -
9. Ejemplos
l  Ejemplo8. Resultado

Javier Oliver Fulguera -

Más contenido relacionado

La actualidad más candente

Otras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosOtras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosEmer Gio
 
Ut3 apuntes diseno_de_bbdd_parte_ii_el_modelo_relacional
Ut3 apuntes diseno_de_bbdd_parte_ii_el_modelo_relacionalUt3 apuntes diseno_de_bbdd_parte_ii_el_modelo_relacional
Ut3 apuntes diseno_de_bbdd_parte_ii_el_modelo_relacionalCarlos Villarroel González
 
Interaction Modeling
Interaction ModelingInteraction Modeling
Interaction ModelingHemant Sharma
 
Unified modelling language (UML)
Unified modelling language (UML)Unified modelling language (UML)
Unified modelling language (UML)Hirra Sultan
 
Modelo de datos semantico
Modelo de datos semanticoModelo de datos semantico
Modelo de datos semanticoclasetic2011
 
XML Schema
XML SchemaXML Schema
XML SchemaKumar
 
Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and designjayashri kolekar
 
Configuracion y administracion del espacio en disco
 Configuracion y administracion del espacio en disco Configuracion y administracion del espacio en disco
Configuracion y administracion del espacio en discoYael_21
 
Lectura 3 Modelo De Analisis
Lectura 3   Modelo De AnalisisLectura 3   Modelo De Analisis
Lectura 3 Modelo De Analisisguest0a6e49
 
Object Modelling Technique " ooad "
Object Modelling Technique  " ooad "Object Modelling Technique  " ooad "
Object Modelling Technique " ooad "AchrafJbr
 
Service Oriented Architecture -Unit II - Modeling databases in xml
Service Oriented Architecture -Unit II - Modeling databases in xml Service Oriented Architecture -Unit II - Modeling databases in xml
Service Oriented Architecture -Unit II - Modeling databases in xml Roselin Mary S
 
Xml Presentation-3
Xml Presentation-3Xml Presentation-3
Xml Presentation-3Sudharsan S
 

La actualidad más candente (20)

Otras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosOtras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datos
 
Ut3 apuntes diseno_de_bbdd_parte_ii_el_modelo_relacional
Ut3 apuntes diseno_de_bbdd_parte_ii_el_modelo_relacionalUt3 apuntes diseno_de_bbdd_parte_ii_el_modelo_relacional
Ut3 apuntes diseno_de_bbdd_parte_ii_el_modelo_relacional
 
Interaction Modeling
Interaction ModelingInteraction Modeling
Interaction Modeling
 
Unified modelling language (UML)
Unified modelling language (UML)Unified modelling language (UML)
Unified modelling language (UML)
 
Modelo de datos semantico
Modelo de datos semanticoModelo de datos semantico
Modelo de datos semantico
 
Use case diagram
Use case diagramUse case diagram
Use case diagram
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Funciones del DBA, SA Y DA
Funciones del DBA, SA Y DAFunciones del DBA, SA Y DA
Funciones del DBA, SA Y DA
 
XML Schema
XML SchemaXML Schema
XML Schema
 
Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and design
 
Fundamentos SOA
Fundamentos SOAFundamentos SOA
Fundamentos SOA
 
HTML Tags
HTML Tags HTML Tags
HTML Tags
 
Configuracion y administracion del espacio en disco
 Configuracion y administracion del espacio en disco Configuracion y administracion del espacio en disco
Configuracion y administracion del espacio en disco
 
EER modeling
EER modelingEER modeling
EER modeling
 
Lectura 3 Modelo De Analisis
Lectura 3   Modelo De AnalisisLectura 3   Modelo De Analisis
Lectura 3 Modelo De Analisis
 
Object Modelling Technique " ooad "
Object Modelling Technique  " ooad "Object Modelling Technique  " ooad "
Object Modelling Technique " ooad "
 
Service Oriented Architecture -Unit II - Modeling databases in xml
Service Oriented Architecture -Unit II - Modeling databases in xml Service Oriented Architecture -Unit II - Modeling databases in xml
Service Oriented Architecture -Unit II - Modeling databases in xml
 
XSLT
XSLTXSLT
XSLT
 
Oomd unit1
Oomd unit1Oomd unit1
Oomd unit1
 
Xml Presentation-3
Xml Presentation-3Xml Presentation-3
Xml Presentation-3
 

Destacado

programacion para la web (Dom)
programacion para la web (Dom)programacion para la web (Dom)
programacion para la web (Dom)Ivana Ibarra
 
Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Hernan Beati
 
Elementos primordiales en el modelo de objetos
Elementos primordiales en el modelo de objetosElementos primordiales en el modelo de objetos
Elementos primordiales en el modelo de objetosCriiztiian Mendoza
 
La magia de jquery
La magia de jqueryLa magia de jquery
La magia de jqueryAngelDX
 
Presentacion diseño web con jquery
Presentacion diseño web con jqueryPresentacion diseño web con jquery
Presentacion diseño web con jqueryMejorandola
 
jQuery 1.3 UI eghost Julio2009
jQuery 1.3 UI eghost Julio2009jQuery 1.3 UI eghost Julio2009
jQuery 1.3 UI eghost Julio2009Irontec
 
Document object model(dom)
Document object model(dom)Document object model(dom)
Document object model(dom)rahul kundu
 
DOM ( Document Object Model )
DOM ( Document Object Model )DOM ( Document Object Model )
DOM ( Document Object Model )ITSTB
 
Herramientas publicación gis web poroceso y análisis
Herramientas publicación gis web   poroceso y análisisHerramientas publicación gis web   poroceso y análisis
Herramientas publicación gis web poroceso y análisisUrban Data Analytics
 
Paty carbajal presentacion
Paty carbajal presentacionPaty carbajal presentacion
Paty carbajal presentacionpatty_bperdomo21
 
Eppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre GironaEppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre GironaJordi Graells
 
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...Esri
 
Modeliza de variables_climaticas2
Modeliza de variables_climaticas2Modeliza de variables_climaticas2
Modeliza de variables_climaticas2Lucas83
 
Symfony2 admingenerator
Symfony2 admingeneratorSymfony2 admingenerator
Symfony2 admingeneratorsymfony_bcn
 
Clase 1 introducción a symfony 2
Clase 1   introducción a symfony 2Clase 1   introducción a symfony 2
Clase 1 introducción a symfony 2hydras_cs
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2César Hernández
 

Destacado (20)

programacion para la web (Dom)
programacion para la web (Dom)programacion para la web (Dom)
programacion para la web (Dom)
 
Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011
 
Dom JavaScript
Dom JavaScriptDom JavaScript
Dom JavaScript
 
Elementos primordiales en el modelo de objetos
Elementos primordiales en el modelo de objetosElementos primordiales en el modelo de objetos
Elementos primordiales en el modelo de objetos
 
La magia de jquery
La magia de jqueryLa magia de jquery
La magia de jquery
 
Presentacion diseño web con jquery
Presentacion diseño web con jqueryPresentacion diseño web con jquery
Presentacion diseño web con jquery
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Laravel 4.2 pdf
Laravel 4.2 pdfLaravel 4.2 pdf
Laravel 4.2 pdf
 
AJAX
AJAXAJAX
AJAX
 
jQuery 1.3 UI eghost Julio2009
jQuery 1.3 UI eghost Julio2009jQuery 1.3 UI eghost Julio2009
jQuery 1.3 UI eghost Julio2009
 
Document object model(dom)
Document object model(dom)Document object model(dom)
Document object model(dom)
 
DOM ( Document Object Model )
DOM ( Document Object Model )DOM ( Document Object Model )
DOM ( Document Object Model )
 
Herramientas publicación gis web poroceso y análisis
Herramientas publicación gis web   poroceso y análisisHerramientas publicación gis web   poroceso y análisis
Herramientas publicación gis web poroceso y análisis
 
Paty carbajal presentacion
Paty carbajal presentacionPaty carbajal presentacion
Paty carbajal presentacion
 
Eppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre GironaEppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre Girona
 
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
 
Modeliza de variables_climaticas2
Modeliza de variables_climaticas2Modeliza de variables_climaticas2
Modeliza de variables_climaticas2
 
Symfony2 admingenerator
Symfony2 admingeneratorSymfony2 admingenerator
Symfony2 admingenerator
 
Clase 1 introducción a symfony 2
Clase 1   introducción a symfony 2Clase 1   introducción a symfony 2
Clase 1 introducción a symfony 2
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2
 

Similar a Introduccion a DOM y AJAX - Javier Oliver Fulguera

Similar a Introduccion a DOM y AJAX - Javier Oliver Fulguera (20)

6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)6. Utilización del modelo de objetos del documento (DOM)
6. Utilización del modelo de objetos del documento (DOM)
 
Dom
DomDom
Dom
 
Dom
DomDom
Dom
 
Symfony 2 CMF
Symfony 2 CMFSymfony 2 CMF
Symfony 2 CMF
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
05introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp0205introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp02
 
05 Introduccion a HTML
05 Introduccion a HTML05 Introduccion a HTML
05 Introduccion a HTML
 
Beneficios del HTML5 al SEO de una web - Montiu Noviembre 2013
Beneficios del HTML5 al SEO de una web - Montiu Noviembre 2013Beneficios del HTML5 al SEO de una web - Montiu Noviembre 2013
Beneficios del HTML5 al SEO de una web - Montiu Noviembre 2013
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Oracle xmldb
Oracle xmldbOracle xmldb
Oracle xmldb
 
Tema 3 xml processing ap is
Tema 3   xml processing ap isTema 3   xml processing ap is
Tema 3 xml processing ap is
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
 
Desarrollo de aplicaciones con wpf
Desarrollo de aplicaciones con wpfDesarrollo de aplicaciones con wpf
Desarrollo de aplicaciones con wpf
 
jQuery 1.3 Eghost Julio2009
jQuery 1.3 Eghost Julio2009jQuery 1.3 Eghost Julio2009
jQuery 1.3 Eghost Julio2009
 
Js
JsJs
Js
 
Html5, css3, java script
Html5, css3, java scriptHtml5, css3, java script
Html5, css3, java script
 
Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con Hibernate
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en php
 
Mysql adodb pdf_php
Mysql adodb pdf_phpMysql adodb pdf_php
Mysql adodb pdf_php
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 

Último

LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 

Último (20)

LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 

Introduccion a DOM y AJAX - Javier Oliver Fulguera

  • 1. INTRODUCCIÓN A DOM Javier Oliver Fulguera Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
  • 2. DOM 1.  Introducción 2.  Estructura jerárquica de DOM 3.  Estructura de documentos Elementos 4.  Estructura de Documentos Subelementos 5.  Estructura de Documentos Atributos 6.  Modelo de Herencia Principales Interfaces 7.  Nodo Documento 8.  Nodos del árbol 9.  Nodos del árbol Campos Genéricos 10. Ejemplo 1.  Calcular nº párrafos de un documento 2.  Lista de nodos 11. Manipulación del árbol 1.  Ejemplo de Manipulación 2.  Ejemplo de manipulación de atributos 12. Conclusiones: DHTML 13.  Ejemplo de parseo XML con Java 14.  Ejemplo de parseo XML com JavaScript Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
  • 3. Introducción l  DOM (Document Object Model) = Interfaz común para trabajar con objetos de un documento l  Documentos XML son tratados como un árbol de nodos l  Cada elemento es un “nodo” l  Los elementos hijos y el texto contenido dentro de un elemento son subnodos l  W3C DOM Site: http://www.w3.org/DOM/ l  DOM Java Language Binding: http://www.w3.org/TR/DOM-Level-2-Core/javabinding.html Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
  • 4. Introducción l  No se especifica cómo tiene que ser la implementación de ese árbol de nodos. l  Solo tiene que cumplir una interfaz l  Implementaciones en Java, ECMAScript, C, C++, Python, etc. Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
  • 5. Estructura jerárquica de DOM l  En DOM, un documento XML se representa como un árbol l  DOM proporciona métodos, clases e interfaces para acceder y manipular el árbol <html> <head> <title>Ejemplo</title> </head> <body> <h1>Cabecera</h1> <p>Un párrafo</p> </body> </html> Javier Oliver Fulguera
  • 6. Estructura de documentos Elementos <p>Un párrafo</p> Element: p Text: Un párrafo Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 7. Estructura de Documentos Subelementos <p>Un párrafo <b>marcado</b> </p> Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 8. Estructura de Documentos Atributos Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 9. Modelo de Herencia Principales Interfaces Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 10. Nodo Documento l  El nodo documento representa el documento entero ¡  Métodos de búsqueda: l  documentElement devuelve el elemento raíz l  getElementByID devuelve el elemento a partir de un ID l  getElementsByTagName devuelve los elementos a partir de una etiqueta dada ¡  Métodos factoría (para crear nodos) l  createElement l  createAttribute l  createComment l  ... Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 11. Nodos del árbol l  El interfaz Node representa nodos del árbol ¡  Todos los demás heredan de Node l  Funcionalidad básica de manipulación del árbol ¡  Recorrido: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 12. Nodos del árbol Campos Genéricos l  nodeName: DOMString ¡ Nombre del nodo (valor de la etiqueta) l  nodeValue : DOMString ¡ Valor del nodo (si es un elemento, nulo, si es un atributo, valor) l  attributes: NamedNodeMap ¡ Lista de atributos del nodo l  Los valores dependen del tipo de nodo Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 13. Ejemplo Calcular nº párrafos de un documento Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 14. Lista de nodos l  El interfaz NodeList indica una lista de nodos l  Los ítems son accedidos mediante el índice ¡  Ej. item(0), item(1), etc. ¡  length indica el número de ítems l  Ejemplo de recorrido: for (int i=0; i < listaNodos.length; i++) procesa(item(i)); Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 15. Ejemplo de lista de nodos Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 16. Manipulación del árbol l  appendChild añade un hijo l  insertBefore inserta un hijo antes que otro l  cloneNode devuelve duplicado de nodo actual ¡ Argumento booleano (true = subelementos) l  removeChild elimina un hijo l  replaceChild substituye un hijo por otro l  hasAttributes indica si tiene atributos l  hasChildNodes indica si tiene hijos Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 17. Ejemplo de Manipulación l  Clonar primer elemento y ponerlo al final // Clonar primer elemento y ponerlo al final function clona() { var raiz=document.documentElement; var cuerpo=raiz.getElementsByTagName("body")[0]; var texto=cuerpo.firstChild; var textoNuevo=texto.cloneNode(true); cuerpo.appendChild(textoNuevo); } Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 18. Ejemplo de manipulación de atributos l  Cambiar fuente a Arial y color a Azul function ponArial() { var raiz=document.documentElement; var cuerpo=raiz.getElementsByTagName("body").item(0); var parrafo2=cuerpo.getElementsByTagName("p").item(1); var fuente=parrafo2.getElementsByTagName("font").item(0); fuente.setAttribute("face","arial"); fuente.setAttribute("color","blue"); } Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 19. DHTML l  DHTML podría definirse como Javascript + DOM + CSS 1.  2.  3.  l  JavaScript contiene código de control (ejemplo: temporizadores) DOM ofrece interfaz para acceder al documento CSS ofrece hojas de estilos (incluidas capas) Ejemplos ¡  ¡  ¡  ¡  ¡  Controlar visibilidad de elementos Mover elementos en una página Modificar imágenes al avanzar con el cursor Controlar interacción con el usuario (formularios) Algunos efectos visuales atractivos (o no...) Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 20. Ejemplo de XML y JAVA l  pelis.xml <?xml version="1.0" encoding="iso-8859-1"?> <Peliculas> <Pelicula codigo='1' titulo='Lo que el viento se llevó' director='Victor Fleming' actores='Clark Gable, Vivien Leigh, Leslie Howard'/> <Pelicula codigo='2' titulo='Los Otros' director='Alejandro Amenabar' actores='Nicole Kidman'/> <Pelicula codigo="5" titulo="Malena" director="Giuseppe Tornatore" actores="Monica Bellucci, Giuseppe Sulfaro"/> </Peliculas> Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 21. Ejemplo de XML y JAVA Root Películas ... Película codigo=1 diirector=’Victor Fleming’ titulo=’Lo que el viento se llevó’ actores=’Clark Gable, Vivien Leigh, Leslie Howard’ Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es Película codigo=5 diirector=’Giuseppe Tornatore’ titulo=’Malena’ actores=’Monica Bellucci, Giuseppe Sulfaro’
  • 22. Ejemplo de XML y JAVA Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 23. Ejemplo de XML y JAVA Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 24. Ejemplo de XML y JAVA l  Resultado: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 25. Ejemplo de XML y JavaScript <?xml version="1.0" encoding="ISO-8859-1"?> <Root> <descarga id="1"> <titulo>Libros Java</titulo> <ruta>http://slob.org</ruta> <hits>2546</hits> </descarga> <descarga id="2"> <titulo>Libros C Sharp</titulo> <ruta>http://sharp.net</ruta> <hits>1654</hits> </descarga> </Root> Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 26. Ejemplo de XML y JavaScript l  JavaScript en página HTML Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 27. Ejemplo de XML y JavaScript l  Resultado Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 28. INTRODUCCIÓN A AJAX Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es Javier Oliver Fulguera - @javioliful – www.oliverfulguera.es
  • 29. INTRODUCCION A AJAX l  1. Introducción l  2. Anatomía de una interacción Ajax. l  3. El objeto XMLHttpRequest l  4. El proceso Cliente-Servidor l  5. Nuestro primer ejemplo con AJAX l  6. Sintaxis básica para los métodos GET/POST l  7. Recibiendo los resultados del procesador l  8. Re-renderizando elementos l  9. Ejemplos Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 30. 1. Introducción l  Usando Javascript una página Html puede de forma asíncrona realizar llamadas al servidor desde el que se ha descargado y cargar contenidos formateados bien como XML o como texto. Con esta información Javascript puede enriquecer las páginas pudiendo realizar actualizaciones online, recarga dinámica de forma sencilla, etc. l  El término asíncrono va a hacer referencia a la posibilidad de poder realizar llamadas no bloqueantes desde el navegador, lo que nos permite interaccionar de forma efectiva sin tener que hacer envíos y recepciones de la página actual. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 31. 1. Introducción l  Para este fin surge el término AJAX (Asynchronous JavaScript Technology and XML) como tecnología que describe este modelo de interacción. l  Ajax no es nuevo. Pero lo que ha cambiado y ha potenciado estas técnicas es la inclusión del objeto XMLHttpRequest en los motores de javascript de los browsers con un comportamiento estandarizado. l  Lo que hace diferente a los clientes Ajax es que los clientes contienen lógica de control específica embebida dentro de su tecnología Javascript. l  La interacción de Ajax va a permitir una clara separación entre la lógica de presentación y los datos. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 32. 1. Introducción l  Ajax requiere un cambio arquitectural respecto a los modelos Html. Tradicionalmente una página desde la perspectiva del servidor está especializada en la generación del Html para cada cliente que realiza una llamada al servidor. Cuando se requiere interacción los clientes refrescan y re-renderizan una página Html completa para cada request. l  El modelo de Ajax difiere, ya que realiza una carga de un Html que hace de contenedor. l  Dicho contendor integra contenidos que están expuestos en el servidor como documentos XML, y para ello se basa en eventos del cliente. Es decir, que un evento del cliente va a provocar una re-renderización parcial del Html, pero no del documento completo. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 33. 1. Introducción l  Algunos casos de interacción de Ajax pueden ser: 1. Validación en tiempo real de datos de un formulario. 2. Auto completado de datos de un formulario. 3. Carga bajo demanda. 4. Controles y efectos sofisticados para la interfaz de usuario. 5. Refresco de datos y envío a servidor. 6. Submit parciales. 7. Mashups. 8. Modelo de aplicación basado en una página. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 34. 2. Anatomía de una interacción Ajax. l  Una aplicación web contiene una página Html estática o bien generada vía una Jsp. Dicha página contiene un formulario que requiere una validación de sus datos sin refrescar la página y sin hacer un submit. Supongamos que tenemos un servlet llamado ValidateServlet que provee la validación lógica. La figura describe en detalle la interacción que se produce entre la página y el servidor: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 35. 2. Anatomía de una interacción Ajax. l  La secuencia que se sigue consiste en: 1.  Ocurre un evento del cliente 2.  Un objeto XMLHttpRequest se crea y configura 3.  La petición se procesa por el ValidateServlet 4.  El ValidateServlet devuelve un XML que contiene el resultado 5.  El objeto XMLHttpRequest llama a la función de callback y procesa el resultado 6.  El HTML Dom se actualizado Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 36. 3. El objeto XMLHttpRequest l  El objeto XMLHttpRequest es un objeto nativo del browser que es indispensable crearlo caso contrario ni se podrá comenzar las aplicaciones. Vamos a partir del objeto desde la creación y veremos sus métodos y propiedades. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 37. 3. El objeto XMLHttpRequest l Creando el objeto XMLHttpRequest. l Muchos navegadores requieren una forma diferente de invocar al objeto XMLHttpRequest. Vamos a mostrar un método estándar de hacerlo. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 38. 3. El objeto XMLHttpRequest l  Para obtener un objeto en javascript nos bastará con poner ajax=getObjetoHTTP() . l  Métodos l  A continuación los métodos del objeto. ¡  abort(): Detiene la petición en curso. ¡  getAllResponseHeaders() : Devuelve todas las cabeceras de la respuesta (etiquetas y valores) como una cadena. ¡  getResponseHeader(etiqueta) : Devuelve el valor de la etiqueta en las cabeceras de la respuesta. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 39. 3. El objeto XMLHttpRequest ¡  open(método, URL, asíncrona, usuario, password) : Abre una conexión con esa URL mediante el método (GET,POST,HEAD o DELETE), tiene 5 parámetros de entrada, las 2 primeras (método, URL) son obligatorios: l  método: El método que se usará para la conexión (GET,POST,HEAD o DELETE). URL: La URL que se llamará para el proceso. l  Las 3 restantes (asíncrona, usuario, password) son opcionales: l  asíncrona: Valor booleano, true indica que el proceso se ejecutará sin parar la aplicacion en curso (Background) false indica que se detendrá el proceso hasta que se termine el proceso de manera correcta. ¡  send(contenido) : Envía el contenido al servidor. ¡  setRequestHeader(etiqueta,valor) : Establece el valor de una etiqueta de las cabeceras de petición. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 40. 3. El objeto XMLHttpRequest l  A continuación las propiedades del objeto. ¡  onreadystatechange : Contiene el nombre de la función que se ejecuta cada vez que el estado de la conexión cambie. ¡  readyState : Estado de la conexión. Código à Estado 1 à Cargando 2 à Cargado, pero sin su contenido incorporado a los objetos correspondientes 3 à Incorporando a los objetos correspondientes 4 à Carga completada ¡  responseText : Datos devueltos por el servidor en formato cadena. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 41. 3. El objeto XMLHttpRequest ¡  responseXML : Datos devueltos por el servidor en forma de documento XML que puede ser recorrido mediante las funciones del DOM (getEementsByTagName, etc). ¡  status : Código enviado por el servidor. Código à Valor 200 à Completado con éxito 404 àNo se encontró URL 414 à Los valores pasados por GET superan los 512 bytes ¡  statusText : Mensaje de texto enviado por el servidor junto al código (status), para el caso de código 200 contendrá "OK". Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 42. 4. El proceso Cliente-Servidor l  Cuando nuestro cliente se comunica con el servidor, éste no recibirá variables para su uso o modificación, sino que lo que el cliente recibe del servidor es aquello que el servidor suelta; es decir nosotros tenemos que codificar la página llamada para que nos devuelva aquello que necesitaremos (XML, etc.) l  Veamos un ejemplo: ¡  Tenemos un AjaxServlet.java que recibirá variables por el método GET. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 43. 4. El proceso Cliente-Servidor Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 44. 4. El proceso Cliente-Servidor l  Si ponemos http://localhost:8080/AjaxProyect/AjaxServlet?mensaje=1 el archivo soltará: ¡  Enviaste el valor 1 l  Si ponemos http://localhost:8080/AjaxProyect/AjaxServlet?mensaje=2 el archivo soltará: ¡  Enviaste el valor 2 l  Si ponemos http://localhost:8080/AjaxProyect/AjaxServlet?mensaje=5345 el archivo soltará: ¡  No enviaste ningun valor ACEPTABLE l  Si no le damos variables http://localhost:8080/AjaxProyect/AjaxServlet el archivo soltará: ¡  No se ha enviado valor alguno de petición. l  Por tanto lo que debemos hacer es que nuestros archivos Clientes entiendan la línea y la manera de procesar la información que nuestro servidor va a tener. Un aspecto a tener en cuenta es que al realizar la petición se pueden crear variables de sesión, cookies, consultas SQL, con lo que disponemos de muchas opciones para montar las soluciones que necesitamos. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 45. 4. El proceso Cliente-Servidor l  Ejemplo: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 46. 5. Nuestro primer ejemplo con AJAX l  Como primer ejemplo no haremos el típico HOLA MUNDO enviaremos una petición a nuestro procesador que nos arrojará nuestro IP, PATH y date() usando el método GET. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 47. 5. Nuestro primer ejemplo con AJAX l  Lado del cliente: ¡  Escribimos es JavaScript necesario para obtener el objeto XMLHttpRequest Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 48. 5. Nuestro primer ejemplo con AJAX l  Lado del cliente: ¡  Escribimos la función JavaScript a ejecutar: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 49. 5. Nuestro primer ejemplo con AJAX l  Lado del cliente: ¡  Escribimos el html para ejecutar la función:: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 50. 5. Nuestro primer ejemplo con AJAX l  Lado del servidor: ¡  Nuestro procesador trabajará según la variable funcion que reciba por el método GET Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 51. 5. Nuestro primer ejemplo con AJAX l  Ejecutar ejemplo1: l  Analizando la función primer_tope(): ¡  Fuera de lo que es la funcion getObjetoHTTP() analizaremos nuestra función que se encargó del envío y recepcion de datos. 1.  _objetus= getObjetoHTTP() Llamamos al objeto XMLHttpRequest 2.  _values_send="funcion=pt" Cargamos todas las variables que se van a enviar 3.  _URL_=“AjaxServletInfo?" La URL donde nos comunicaremos (Nótese el ? al final del archivo) 4.  _objetus.open("GET",_URL_+"&"+_values_send,true); La parte más importante, aquí abrimos la URL con los valores cargados o sea AjaxServletInfo?funcion=pt Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 52. 5. Nuestro primer ejemplo con AJAX 5.  _objetus.onreadystatechange=function() { Invocamos la propiedad onreadystatechange, entonces cuando el objeto llegue a este punto se llamará a una funcion que gestionará el resto del proceso. 6.  if (_objetus.readyState==4) { Llamamos ahora a la propiedad readyState que nos indicará en que estado se encuentra el proceso, entonces cuando el estado sea 4 (Terminado) hacemos LO QUE SE NOS OCURRA. 7.  if(_objetus.status==200) { Si el estado del proceso arroja un status 200 significa que a terminado con éxito. 8.  window.alert(_objetus.responseText); En este caso llamamos a la propiedad responseText que tiene lo que el procesador soltó y lo mostramos mediante un alert. 9.  } } } _objetus.send(null); } Y por último enviamos null porque hemos enviado todas las variables que nos interesaban automáticamente al abrir AjaxServletInfo?funcion=pt. _objetus.send(null) : Es obligatorio, si no se envia algo el proceso no funciona Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 53. 5. Nuestro primer ejemplo con AJAX l  Ejecución: l  Resultado: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 54. 5. Nuestro primer ejemplo con AJAX l  Para enviar la petición por el método POST. Nótense las diferencias con el método GET Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 55. 7. Recibiendo los resultados del procesador l  Hay dos maneras en las que se puede recibir la informacion devuelta por el procesador, las propiedades: responseText y responseXML 1.  responseText: Con esta propiedad se reciben los datos de la siguiente manera: Cuando el estado del proceso esté en el nivel 4 vari=objetus.responseText l  Entonces aqui la variable vari contendrá el resultado del procesador. Ejemplo: window.alert(vari) l  Esto es lo que usamos en nuestro primer ejemplo, aqui cuando el proceso llega a nivel 4 creamos un alert con los datos que nos a enviado el procesador. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 56. 7. Recibiendo los resultados del procesador 2.  responseXML: Con esta propiedad el procesador nos devuelve los datos como XML y debemos recorrerlo mediante las funciones del DOM (getEementsByTagName, etc). vari=objetus.responseXML l  Guardamos el documento devuelto en la variable vari para luego recorrerla,en el caso para nuestro ejemplo el documento XML del procesador tendrá la siguente estructura: <serv> <ip>ip</ip> <path>path </path> <date>date</date> </serv> var _ip = vari.getElementsByTagName('ip').item(0).firstChild.data; var _path= vari.getElementsByTagName(‘path').item(0).firstChild.data; var _date = vari.getElementsByTagName('date').item(0).firstChild.data; window.alert(_ip+"n"+_path+"n"+_date) Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 57. 7. Recibiendo los resultados del procesador l  En el lado del cliente: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 58. 7. Recibiendo los resultados del procesador l  En el lado del servidor: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 59. 7. Recibiendo los resultados del procesador l  Ejecución: l  Resultado: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 60. 8. Re-renderizando elementos l  Hasta ahora hemos manejado los datos que nos llegaban del procesador viendolos con un alert (window.alert(respuesta)) pues bien ahora vamos a "embeder" los resultados en nuestras páginas, tenemos 2 maneras de llamar al elemento donde se pondrá el nuevo contenido: l  document.getElementById("elementID") : Llamaremos al elemento por el ID <div id="nombreid" ></div> Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 61. 8. Re-renderizando elementos l  Entonces vamos a cambiar nuestro window.alert(respuesta) por document.getElementById(target) aplicandole la propiedad innerHTML, quedandonos: target="nombreid"; document.getElementById(target).innerHTML = _objetus.responseText; l  document.getElementsByTagName("tagName") : ¡  Llamaremos al elemento por su tag name. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 62. 8. Re-renderizando elementos l  Del lado del cliente: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 63. 8. Re-renderizando elementos l  Resultado: Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 64. 9. Ejemplos l  Ejemplo5 (Añadir Filas a Tabla) ¡  Añade un fila a una tabla con los datos del servidor con Dom l  Ejemplo6 (Mostrar lista en XML) ¡  Muestra una lista de objetos parseados en XML con DOM l  Ejemplo7 (Evento onkeyup) ¡  Escribe datos del servidor al pulsar una tecla sobre una caja de texto l  Ejemplo8 (AutoCompletar) ¡  Autocompleta una caja de texto con una lista de valores de una tabla de la base de datos. Javier Oliver Fulguera - @javioiful - www.oliverfulguera.es
  • 65. 9. Ejemplos l  Ejemplo5. Cliente Javier Oliver Fulguera -
  • 66. 9. Ejemplos l  Ejemplo5. Servidor Javier Oliver Fulguera -
  • 67. 9. Ejemplos l  Ejemplo5. Resultado Javier Oliver Fulguera -
  • 68. 9. Ejemplos l  Ejemplo6. Cliente Javier Oliver Fulguera -
  • 69. 9. Ejemplos l  Ejemplo6. Servidor Javier Oliver Fulguera -
  • 70. 9. Ejemplos l  Ejemplo6. Resultado Javier Oliver Fulguera -
  • 71. 9. Ejemplos l  Ejemplo7. Cliente Javier Oliver Fulguera -
  • 72. 9. Ejemplos l  Ejemplo7. Servidor Javier Oliver Fulguera -
  • 73. 9. Ejemplos l  Ejemplo7. Resultado Javier Oliver Fulguera -
  • 74. 9. Ejemplos l  Ejemplo8. Cliente ¡  (Se adjunta debido a su extensión) Javier Oliver Fulguera -
  • 75. 9. Ejemplos l  Ejemplo8. Servidor Javier Oliver Fulguera -
  • 76. 9. Ejemplos l  Ejemplo8. Resultado Javier Oliver Fulguera -