XHTML DINAMICO AVANZADO AJAX Y DOM AJAX Conceptos

  • Slides: 18
Download presentation
XHTML DINAMICO AVANZADO (AJAX Y DOM)

XHTML DINAMICO AVANZADO (AJAX Y DOM)

AJAX • Conceptos y fundamentos básicos • Patrones de Ajax • Ejemplos prácticos. •

AJAX • Conceptos y fundamentos básicos • Patrones de Ajax • Ejemplos prácticos. • Librerías estándares

Bibliografía • Ajax in Practice • Visual Quickstart Guide CSS, DHTML, and Ajax, Fourth

Bibliografía • Ajax in Practice • Visual Quickstart Guide CSS, DHTML, and Ajax, Fourth Edition • DHTML Utopia. Modern Web Design Using Java. Script & DOM Ajax: Un Nuevo acercamiento a las Aplicaciones Web http: //www. ajaxhispano. com/ajax-nuevo-acercamiento-aplicaciones-web. html El objeto XMLHttp. Request http: //www. programacionweb. net/articulos/articulo/? num=386

Paso de parámetros (GET) En la petición AJAX podemos pasar parámetros tanto por POST

Paso de parámetros (GET) En la petición AJAX podemos pasar parámetros tanto por POST como por GET a nuestro servidor. Para pasar parámetros por GET ( por URL ) , usaremos una URL con parámetros en la función open independientemente de usar el método GET o POST, por ejemplo: o. XMLHttp. open('GET', 'pagina. php? parametro=' + escape(parametro));

set. Request. Header (método) El método set. Request. Header añade un encabezado HTTP a

set. Request. Header (método) El método set. Request. Header añade un encabezado HTTP a la petición HTTP a través del objeto XMLHttp. Request. Utilización o. XMLHttp. Request. set. Request. Header ( s. Nombre, s. Valor); – s. Nombre - Nombre del encabezado HTTP. – s. Valor - Valor del encabezado HTTP. El parametro s. Nombre no podrá ser Accept-Charset, Accept-Encoding, Content-Length, Expect, Date, Host, Keep-Alive, Referer, TE, Trailer, Transfer-Encoding ni Upgrade, tampoco podrá contener espacios, puntos o saltos de línea. El parametro s. Valor no podrá contener saltos de línea. Solo podemos utilizar set. Request. Header cuando el valor de ready. State sea 1.

Paso de parámetros (POST) Para pasarlos por POST, deberemos usar el método POST en

Paso de parámetros (POST) Para pasarlos por POST, deberemos usar el método POST en la función open, configurar el tipo de información que enviamos y por último pasamos los parámetros desde la función send, veamos un ejemplo: o. XMLHttp. open('POST', 'pagina. php'); try { o. XMLHttp. set. Request. Header("Content-Type", "application/x-www-form-urlencoded") } catch (e) { } o. XMLHttp. send( 'parametro=' + escape(parametro));

2º Ejemplo. Paso de parámetros Vamos a pasar 3 parámetros a un ASP que

2º Ejemplo. Paso de parámetros Vamos a pasar 3 parámetros a un ASP que simplemente devuelve las variables que han llegado por método GET o POST Los parámetros son nombre=“HTML dinámico avanzado (Ajax y DOM)“, fechainicio="16/10/2007“ y fechafin="24/10/2007" Los pasos a seguir serían los siguientes: 1. Crear el objeto 2. Establecer la comunicación con el servidor usando AJAX. 1. Si es con el método GET adjuntar los parámetros a la dirección 3. Hacer la petición 1. Si es el método POST, especifica qué tipo de datos llegarán al servidor 4. El servidor nos preparará y devolverá una información 5. Si todo es correcto mostrar la información devuelve * Traspaso de datos http: //127. 0. 0. 1/ajax/ej 2/index. html

status (atributo) El atributo status. Text devuelve el código del estado HTTP de la

status (atributo) El atributo status. Text devuelve el código del estado HTTP de la transmisión devuelto por el servidor web. Utilización i. Estado = o. XMLHttp. Request. status; i. Estado - Entero con el código HTTP de estado. La propiedad status e utiliza para comprobar que no ha habido problemas en la comunicación con el servidor, podremos acceder a los datos siempre y cuando el estado de la conexión devuelto con ready. Statechange sea igual a 3 (recibiendo) o 4 (a punto). El código de estado HTTP para una transmisión correcta es el 200, será conveniente comprobar este dato antes de acceder a los datos con response. XML o response. Text.

status (atributo) 100 Continua 101 Cambio de protocolo 200 OK 201 Creado 202 Aceptado

status (atributo) 100 Continua 101 Cambio de protocolo 200 OK 201 Creado 202 Aceptado 203 Información no oficial 204 Sin Contenido 205 Contenido para reset 206 Contenido parcial 300 Múlpiples posibilidades 301 Mudado permanentemente 302 Encontrado 303 Vea otros 304 No modificado 305 Utilice un proxy 307 Redirección temporal 400 Solicitud incorrecta 401 No autorizado 402 Pago requerido 403 Prohibido 404 No encontrado 405 Método no permitido 406 No aceptable 407 Proxy requerido 408 Tiempo de espera agotado 409 Conflicto 410 No mapas disponible 411 Requiere longitud 412 Falló precondición 413 Entidad de solicitud demasiado larga 414 URI de solicitud demasiado largo 415 Tipo de medio no soportado 416 Rango solicitado no disponible 417 Falló expectativa 500 Error interno 501 No implementado 502 Pasarela incorrecta 503 Servicio no disponible 504 Tiempo de espera de la pasarela agotado 505 Versión de HTTP no soportada

3º Ejemplo. Llamar a una página que no existe Vamos a llamar a una

3º Ejemplo. Llamar a una página que no existe Vamos a llamar a una página noexiste. asp y vamos a ver que nos envía el objeto. ¿Qué ocurrirá si llamamos a o. XMLHttp. response. Text ? Los pasos a seguir serían los siguientes: 1. Crear el objeto 2. Establecer la comunicación con el servidor usando AJAX. 3. Hacer la petición 4. El servidor nos preparará y devolverá una información 1. Si el código es 404 mostrar un mensaje de que no existe la página 2. Si el código es de error (<>200) entonces mostramos el código 3. Si todo es correcto entonces mostrar la respuesta * Control de errores http: //127. 0. 0. 1/ajax/ej 3/index. html

4º Ejemplo. Devolver datos de Access Disponemos de una base de datos Access, usuarios.

4º Ejemplo. Devolver datos de Access Disponemos de una base de datos Access, usuarios. mdb, que contiene una tabla Alumnos. Crear una página HTML con un enlace y un textarea, que al pulsar haga una llamada a un ASP que consulte todos los alumnos, devuelva los datos y los inserte en el campo textarea el listado de todos los alumnos. * Consulta en una base de datos * Traspaso de diferentes campos en una llamada http: //127. 0. 0. 1/ajax/ej 4/index. html

5º Ejemplo. Servicios y acciones Disponemos de una base de datos Access, edificios. mdb,

5º Ejemplo. Servicios y acciones Disponemos de una base de datos Access, edificios. mdb, que contiene dos tablas Edificio y Unidad. Crear una página HTML con dos desplegables, uno para los edificios y otro para las unidades de ese edificio. Al pulsar un edificio, se hace una llamada que consulta en un APS * Concepto de Servicios * Devolver código Javascript * Uso de tipos de eventos http: //127. 0. 0. 1/ajax/ej 5/index. html

6º Ejemplo. Mejorando el ejemplo anterior El objetivo del ejercicio es mejorar el 5º

6º Ejemplo. Mejorando el ejemplo anterior El objetivo del ejercicio es mejorar el 5º ejercicio. 1. Consulta de los edificios desde la base de datos 1. Conversión del fichero de HTML a ASP 2. Organizar código 1. Clase c. XMLHttp. Request. js 2. acciones. js 3. Gestión en array de todos los objetos c. XMLHttp. Request 4. Pasar un parámetro a la función que gestiona lo que llega de la petición AJAX 5. Liberar todos los objetos * Concepto de bloqueos * Reutilización de código http: //127. 0. 0. 1/ajax/ej 6/index. asp

7º Ejemplo. Noticias dinámicas Disponemos de una base de datos Access, noticias. mdb, que

7º Ejemplo. Noticias dinámicas Disponemos de una base de datos Access, noticias. mdb, que contiene una tabla con noticia. Vamos a crear un tablón dinámico de noticias en la página Plantilla HTML que se ha dejado como material. Cada 10 segundos se escoge aleatoriamente una noticia y se actualiza en la sección correspondiente de la página * Uso de temporizadores * Modificación de contenido en etiquetas

inner. HTML (Javascript) inner. HTML sirve para "escribir" dentro de un elemento HTML Por

inner. HTML (Javascript) inner. HTML sirve para "escribir" dentro de un elemento HTML Por ejemplo, si tienes un div: <div id="pepe"></div> Puedes utilizar este código para poner algo dentro: document. get. Element. By. Id('pepe'). inner. HTML = 'Hola, soy yo';

set. Timeout (Javascript) Esta función crea un temporizador el cual dispara un reloj con

set. Timeout (Javascript) Esta función crea un temporizador el cual dispara un reloj con los milisegundos que indicamos. Al cumplirse el tiempo indicado se ejecuta el código que le hayamos indicado. var identificador = set. Timeout("expresión-javascript", milisegundos) La función devuelve un identificador cada vez que se ejecuta. Este número podemos almacenarlo en una variable para utilizarlo posteriormente en otros métodos (por ejemplo clear. Timeout()).

clear. Timeout (Javascript) Su efecto es el de detener la ejecución de un temporizador

clear. Timeout (Javascript) Su efecto es el de detener la ejecución de un temporizador lanzado con set. Timeout. clear. Timeout (identificador)

Generar un número aleatorio (ASP) Randomize Necesario antes de llamar a Rnd() para conseguir

Generar un número aleatorio (ASP) Randomize Necesario antes de llamar a Rnd() para conseguir que los números no se repitan. Rnd( ) Genera un número, pseudo aleatorio, entre 0 y 1. Debe apoyarse en Randomize para evitar que se repita.