Instituto Universitario de Tecnologa del Estado Bolvar IV Semestre de Informtica, seccin 3M ELECTIVA II
UNIDAD 6 TECNOLOGA AJAX
Profesor: Estudiante: Joel Poyo Francheska Romero C.I. 24.542.729
Ciudad Bolvar; Mayo 2014 Tecnologa AJAX
Cuando nos referimos a Ajax (Asynchronous JavaScript And XML) nos referimos a una tecnologa asncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualizacin ni el comportamiento de la pgina. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asncrono est formateado en XML.
Modelo de objetos con lenguaje Script (DOM).
El DOM es un API de programacin para documentos. Guarda una gran similitud con la estructura del documento al que modeliza.
El Modelo de Objetos de Documento (DOM - Document Object Model -) describe cmo todos los elementos en una pgina HTML, tales como campos de entrada, imgenes, etc, se relacionan con la estructura ms alta: el propio documento. Llamando al elemento por su nombre correcto DOM, podemos influir en l mediante un lenguaje de programacin, e,g. Javascript, Java, etc.
Una pgina web es un documento. ste documento puede exhibirse en la ventana de un navegador o tambin como cdigo fuente HTML. Pero, en los dos casos, es el mismo documento. El modelo de objeto de documento (DOM) proporciona otras formas de presentar, guarda y manipular este mismo documento. El DOM es una representacin completamente orientada al objeto de la pgina web y puede ser modificado con un lenguaje de script como JavaScript.
El W3C DOM estndar forma la base del funcionamiento del DOM en muchos navegadores modernos. Varios navegadores ofrecen extensiones ms all del estndar W3C, hay que ir con extremo cuidado al utilizarlas en la web, ya que los documentos pueden ser consultados por navegadores que tienen DOMs diferentes.
Por ejemplo, el DOM de W3C especifica que el mtodo getElementsByTagName en el cdigo de abajo debe devolver una lista de todos los elementos <P> del documento:
paragraphs = document.getElementsByTagName("P"); // paragraphs[0] es el primer elemento <p> // paragraphs[1] es el segundo elemento <p>, etc. alert(paragraphs[0].nodeName);
Todas las propiedades, mtodos y eventos disponibles para la manipulacin y la creacin de pginas web est organizado dentro de objetos. Un ejemplo: el objeto document representa al documento mismo, el objeto table hace funcionar la interfaz especial HTMLTableElement del DOM para acceder a tablas HTML, y as sucesivamente.
Mtodos y propiedades del objeto XML HTTP Request.
A continuacin la lista completa de todas las propiedades y mtodos del objeto y todos los valores numricos de sus propiedades:
Las propiedades definidas para el objeto XMLHttpRequest son:
Los valores definidos para la propiedad readyState son los siguientes:
Valor Descripcin 0 No inicializado (objeto creado, pero no se ha invocado el mtodo open) 1 Cargando (objeto creado, pero no se ha invocado el mtodo send) 2 Cargado (se ha invocado el mtodo send, pero el servidor an no ha respondido) 3 Interactivo (se han recibido algunos datos, aunque no se puede emplear la propiedad responseText) 4 Completo (se han recibido todos los datos de la respuesta del servidor)
Los mtodos disponibles para el objeto XMLHttpRequest son los siguientes:
Mtodo Descripcin abort() Detiene la peticin actual getAllResponseHeaders() Devuelve una cadena de texto con todas las cabeceras de la Propiedad Descripcin readyState Valor numrico (entero) que almacena el estado de la peticin responseText El contenido de la respuesta del servidor en forma de cadena de texto responseXML El contenido de la respuesta del servidor en formato XML. El objeto devuelto se puede procesar como un objeto DOM status El cdigo de estado HTTP devuelto por el servidor (200 para una respuesta correcta, 404 para "No encontrado", 500 para un error de servidor, etc.) statusText El cdigo de estado HTTP devuelto por el servidor en forma de cadena de texto: "OK", "Not Found", "Internal Server Error", etc. respuesta del servidor getResponseHeader("cabecera") Devuelve una cadena de texto con el contenido de la cabecera solicitada onreadystatechange Responsable de manejar los eventos que se producen. Se invoca cada vez que se produce un cambio en el estado de la peticin HTTP. Normalmente es una referencia a una funcin JavaScript open("metodo", "url") Establece los parmetros de la peticin que se realiza al servidor. Los parmetros necesarios son el mtodo HTTP empleado y la URL destino (puede indicarse de forma absoluta o relativa) send(contenido) Realiza la peticin HTTP al servidor setRequestHeader("cabecera", "valor") Permite establecer cabeceras personalizadas en la peticin HTTP. Se debe invocar el mtodo open() antes que setRequestHeader()
El mtodo open() requiere dos parmetros (mtodo HTTP y URL) y acepta de forma opcional otros tres parmetros. Definicin formal del mtodo open():
Las peticiones realizadas son asncronas. Si se indica un valor false al tercer parmetro, la peticin se realiza de forma sncrona, esto es, se detiene la ejecucin de la aplicacin hasta que se recibe de forma completa la respuesta del servidor. Es importante saber que las peticiones sncronas son justamente contrarias a la filosofa de AJAX. El motivo es que una peticin sncrona congela el navegador y no permite al usuario realizar ninguna accin hasta que no se haya recibido la respuesta completa del servidor. La sensacin que provoca es que el navegador se ha colgado por lo que no se recomienda el uso de peticiones sncronas salvo que sea imprescindible.
Los ltimos dos parmetros opcionales permiten indicar un nombre de usuario y una contrasea vlidos para acceder al recurso solicitado, por otra parte, el mtodo send() requiere de un parmetro que indica la informacin que se va a enviar al servidor junto con la peticin HTTP. Si no se envan datos, se debe indicar un valor igual a null. En otro caso, se puede indicar como parmetro una cadena de texto, un array de bytes o un objeto XML DOM.
Manejo de errores.
Para lograr manejar los errores que ocurren en las llamadas asincrnicas a mtodos utilizadas por ajax a travs de javascript nos tendremos que valer del evento ScriptManager.AsyncPostBackError este evento se produce cuando hay un error de pgina durante una devolucin de datos asincrnica y pertenece al control ScriptManager .
En el ejemplo cambiamos el mensaje al usuario por uno mas amigable y ocultamos la informacin que podramos estar cediendo a terceros, esto tambin podra se muy til si queremos llevar un Log de este tipo de errores.
Ahora bien si quisiramos que no el navegador de ninguna manera mostrara un error de javasript sino que mostrar este error de una manera mas presentable al usuario a travs de una capa div por ejemplo podramos hacer uso de la clase Sys.WebForms.PageRequestManager que a travs del mtodo getInstance() no permite acceder a la funcionalidad de postback asincrnicos de la clase que esta en uso, adems usando el mtodo add_endRequest(EndRequestHandler) podemos aadir un manejador al evento endRequest que seala que la llamada asincrnica ha terminado.
Implementando todo esto en nuestro aspx:
<script type=text/javascript> var divElem = AlertDiv; var messageElem = AlertMessage; var bodyId = bodyId; Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); function ToggleAlertDiv(visString) { if (visString == hidden) { $get(bodyId).style.backgroundColor = white; } else { $get(bodyId).style.backgroundColor = gray; } var adiv = $get(divElem); adiv.style.visibility = visString; } function ClearErrorState() { $get(messageElem).innerHTML = ; ToggleAlertDiv(hidden); } function EndRequestHandler(sender, args) { if (args.get_error() != undefined && args.get_error().httpStatusCode == 500) { var errorMessage = args.get_error().message args.set_errorHandled(true); ToggleAlertDiv(visible); $get(messageElem).innerHTML = + errorMessage + ; } } </script>
Mi div para mostrar el mensaje con el botn aceptar
Hay que destacar la lnea en la que aparece args.set_errorHandled(true); dentro del mtodo EndRequestHandler, con esto indicamos que ya nosotros hemos hecho manejos del error y por lo tanto no se reflejara como error de javascritp en el navegador.
Gestin de operaciones bsicas.
Crear y eliminar una tabla
<? #Crear Tabla $link=mysql_connect("servidor","usuario","password");
//abrimos la base de datos mysql_select_db("NombreBaseDatos",$link);
$result=mysql_query("CREATE TABLE NombreTabla(Campos de la nueva tabla)",$link); # para crear un campo unico y autonumerico seria: # id smallint not null auto_increment, primary key(id) if($result==0) { printf("No se ha podido crear la tabla<P>\n"); }else{ printf("La tabla se ha creado correctamente<P>\n"); } mysql_close($link); ?>
<? #Eliminar Tabla $link=mysql_connect("servidor","usuario","password");
//abrimos la base de datos mysql_select_db("NombreBaseDatos",$link);
$result=mysql_query("DROP TABLE NombreTabla",$link); if($result==0) { printf("No se ha podido eliminar la tabla<P>\n"); }else{ printf("La tabla se ha eliminado correctamente<P>\n"); } mysql_close($link); ?>
Cdigo para Insertar, Eliminar y Modificar los campos de una tabla MySQL desde cdigo PHP. <? $link=mysql_connect("servidor","usuario","password");
//abrimos la base de datos mysql_select_db("NombreBaseDatos",$link);
//agregar un nuevo campo $result=mysql_query("alter table NombreTabla add campo tipo",$link);
//eliminar un campo $result=mysql_query("alter table NombreTabla drop campo",$link);
//modificar un campo $result=mysql_query("alter table NombreTabla modify campo Nuevotipo",$link); ?>
Gestin de archivos.
La gestin de archivos consiste en una serie de pasos interrelacionados, diseados para asegurar la fcil identificacin, organizacin, acceso y mantenimiento de los archivos. Dado que hay fuertes conexiones entre los diversos aspectos de la gestin de archivos, planifique con antelacin para evitar tomar decisiones que limiten las opciones posteriormente. Es en especial importante mantener las lneas de comunicacin abiertas entre el personal tcnico y el personal del proyecto durante la etapa de planeamiento.
Los pasos de la gestin de archivos que se tratan aqu incluyen:
Seguimiento (consideraciones bsicas del sistema de archivos). Otro aspecto del seguimiento est comprendido en Metadatos; Bases de datos de imgenes y otras soluciones de gestin de imgenes (software especial para organizar archivos de imgenes); Almacenamiento (dispositivos y medios); Mantenimiento (copias de seguridad -backup-, migracin, preservacin y seguridad) Se lo trata en Preservacin digital).
Un sistema de gestin de archivos es el software que proporciona a los usuarios y aplicaciones servicios para el uso, acceso y control de accesos, tanto de archivos como a directorios.