Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
almochba@iteso.mx
Ajax
Qu es Ajax?
Es un Modelo de Interaccin para Aplicaciones Web Es una Arquitectua de trabajo Es un Tendencia reciente de desarrollo Es un Toolkit: mecanismos escritos en JS + DOM + CSS + XML + XSLT + XMLHttpRequest JavaScript, para interactuar dinmicamente con los datos HTML (o XHTML) y Hojas de Estilo en Cascada (CSS) para presentar la informacin; XML para intercambiar y manipular datos de manera desincronizada con un servidor web (aunque las aplicaciones AJAX pueden usar otro tipo de tecnologas, incluyendo texto plano, para realizar esta labor).
almochba@iteso.mx
Ajax
Objetivo La Tecnologa AJAX trata de eliminar los siguientes problemas clsicos en las aplicaciones web:
Interactividad pobre. El usuario generalmente espera con una pgina en blanco hasta que se cargue toda la pgina. Tardanza en la respuesta y alto consumo de ancho de banda. Las aplicaciones clsicas web transfieren al servidor y este devuelve cdigo HTML al navegador. Esto hace que se consuman en muchas ocasiones grandes anchos de banda y el rendimiento de la aplicacin sea bajo. Interfases demasiado simples. Para conseguir interfases ms sofisticados se ha utilizado generalmente Flash que implica desarrolladores muy especializados e implica la descarga en el cliente de un applet, normalmente pesados y en ocasiones no permitidos. Grado de usabilidad bajo.
almochba@iteso.mx
Ajax
Cmo funciona? El motor ajax (XMLHttpRequest ) es cargado inicialmente en el cliente. Este motor hace de mediador y manda la informacin relevante al servidor en XML y procesa solamente los datos a actualizar en el cliente.
almochba@iteso.mx
Ajax y XMLHttpRequest
Objeto XMLHttpRequest
Propiedades Descripcin
Devuelve el estado del objeto como sigue: 0 = sin inicializar, 1 = cargando, 2 = cargado, 3 = interactivo y 4 = completado. Devuelve la respuesta como una cadena
readyState
responseText
responseXML
Devuelve la respuesta como XML. Esta propiedad devuelve un objeto XML Devuelve el estado como un nmero (p. ej. 404 para "Not Found" y 200 para "OK"). Devuelve el estado como una cadena (p. ej. "Not Found" o "OK").
status
statusText
almochba@iteso.mx
Ajax y XMLHttpRequest
Objeto XMLHttpRequest
Metodo
abort() getAllResponseHeaders() getResponseHeader(etiqueta) open(metodo, url [, bandera_sinc[, usuario [, contrasea]]]) send([elemento]) setRequestHeader(etiqueta, valor) onreadystatechange req.responseXML o node. getElementsByTagName(tagname) Tag.childNodes[x] Node[x].nodeValue
Descripcin
Detiene la peticin actual Regresa el conjunto completo de encabezados (etiquetas y valores) en forma de cadena Regresa el valor de la etiqueta pasada como parmetro Asigna el URL, mtodo y dems atributos opcionales a la peticin actual Enva la peticin Asigna un par ordenado de etiqueta-valor a la peticin Funcin que se activa con cada cambio de estado. Toma los nodos nombrados por tagname y los guarda en un arreglo Toma el nodo del tag Se toma el valor
almochba@iteso.mx
Ajax y XMLHttpRequest
La siguiente funcin genrica incluye la creacin del objeto XMLHttpRequest (en JavaScript), y una peticin GET
/*esta variable llevar el control de las peticiones*/ var req; /*esta variable nos dir cual es el componente html que estamos actualizando */ var elemCurrent; function loadXMLDoc(elem) { var xml =archivo.xml"; /*archivo del que se est leyendo la informacin*/ elemCurrent = elem; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET", xml, true); req.send(null); } else if (window.ActiveXObject) { isIE = true; req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("GET", xml, true); req.send(); } } }
almochba@iteso.mx
Ajax y XMLHttpRequest
function processReqChange() { // si el estatus de la peticion es "loaded" if (req.readyState == 4) { // si el estatus es "OK" if (req.status == 200) { //aqu hacemos las funciones para actualizar la interfaz //dependiendo del valor del elemento actual } else { alert("There was a problem retrieving the XML data:\n" + req.statusText); } } }
almochba@iteso.mx
Formato XML
Muchas tecnologas actuales intercambian datos en formato XML, principalmente por que XML es un formato estndar. XML se utiliza como metalenguaje es decir, describe y categoriza tipos especficos de informacin. Los datos XML empiezan con una declaracin XML <?xml version=1.0 encoding =UTF-8?>
<?xml version="1.0" encoding="utf-8" ?> <excursiones> <excitem URL="Imgjpg/eltule.gif">El tule</excitem> <excitem URL="Imgjpg/cancun.jpg">Cancn</excitem> <excitem URL="Imgjpg/Chichenitza.jpg">ChichenItza</excitem> <excitem URL="Imgjpg/Snjuanulua.jpg">San Juan Ulua</excitem> </excursiones >
Excursiones es el elemento raz y excitem son los elementos hijos, URL es una propiedad de excitem. La interfaz en html o xhtml crear el objeto de peticin y este guardar el resultado de la peticin (es decir, el XML) en un objeto DOM. Para que nuestra aplicacin cliente est actualizada en cada cambio en nuestra base de datos debemos generar archivos XML.
almochba@iteso.mx
Mtodo
resource fopen(archivo, modo) r: solo lectura r+ lectura y escritura. Posiciona el cursor al final del archivo w Se abre para escritura. Si el archivo no existe lo crea w+ Se abre para escritura y posiciona el cursor al final del archivo Escribe en el archivo Lee los bytes dados en segundo parmetro Cierra el archivo Obtienen el tamao del archivo Valida si el archivo existe Valida si se llego al final de archivo
fputs(resource, contenido) String fread(resource, longitud) bool fclose(resource) int filesize(resource) bool file_exist(archivo) Bool feof(resource)
almochba@iteso.mx
almochba@iteso.mx
Mtodos
getElementsByTagName(nombre_nodo);
Document.createElement(tipo_elem) Element.setAttribute(atributo, valor) Document.createTextNode(texto) Element.appendChild(elem) Element.firstChild Element.childNodes[n] Element.removeChild(elem) Element.data = valor
Obtendremos un objeto
Tipo de elemento en HTML Define un valor para el atributo del elemento HTML Crear un texto Agrega un elemento a otro Obtenemos el primer hijo del elemento Obtiene el elemento hijo que est en la posicin x (los ndices inician en 0) Elimina el elemento del parmetro elem Actualizar el valor del componente
almochba@iteso.mx