Introducción a AJAX Iván Molina Molina molixmoli@gmail.com.

Slides:



Advertisements
Presentaciones similares
JavaScript Rogelio Ferreira Escutia. 2 JavaScript Wikipedia, noviembre 2009http://es.wikipedia.org/wiki/Javascript.
Advertisements

Internet y tecnologías web
Asynchronous JavaScript and XML. Esta clase sirve para ser utilizado cuando lo único que queremos hacer es actualizar cierta parte de un sitio Web continuamente.
Scripting en el lado del Cliente
AJAX Web 2.0
Paper On Demand Server & Designer. Descripción Técnica de Arquitectura y Componentes de la Solución PPOD.
Juan Fernández Rodríguez
Herramientas para el uso de AJAX
ActiveX.
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
Asynchronous JavaScript and XML.  No es una nueva forma de programar, es una forma de utilizar los estándares disponibles.  Es el arte de intercambiar.
"java del lado del servidor" Servlet y JSP Java Server Pages.
AJAX Julio Guillermo Paredes Cornejo Director Servicios Electrónicos Sociedad Peruana de Computación
Framework Hexápodo PHP fácil, rápido y sin dolor
Características generales de un servicio Web.
Mecanismo de petición y respuesta Prof. Manuel Blázquez Ochando
CGI.   Cuando el World Wide Web inició su funcionamiento como lo conocemos, empezando a tomar popularidad aproximadamente en 1993, solo se podía apreciar.
Ingeniero Anyelo Quintero
Diccionario técnico.
Una java servlet es un programa que se ejecuta en un servidor. Por lo general son aplicaciones Java que corren en un entorno de servidor web. Los Java.
3 PROGRAMAR EN UN LENGUAJE DE HIPERTEXTO L.I. OSWALDO MARTINEZ C. EDPW.
InfoPath Ventajas y Uso.
HERRAMIENTAS TELEMATICAS
Prof. José T. Cadenas. Aplicación Web La Internet y la Web hacen que sea fácil y atractivo poner toda la información en el cyberespacio, y la hace accesible.
AJAX Daniel Montenegro Cordero Ingeniería de Sistemas y Computación Pontificia Universidad Javeriana - Cali.
INTRODUCCIÓN El protocolo http se usa en los sistemas de información distribuidos que necesitan mostrar la información y pasarla por una comunicación.
PROTOCOLO H T T P.
Marco Conceptual para la Gestión de Conocimiento de entornos de colaboración: aplicación a la creación de un portal de revistas electrónicas EUITIO Daniel.
INTRODUCCIÓN A AJAX. ¿Qué es AJAX? Acrónimo de Asynchronous JavaScript And XML No es ninguna tecnología, ni lenguaje de programación. Es una técnica de.
“SERVLETS”. Paola Rojas Contreras Juan Villarroel Leiva José Miguel Perez V. Departamento de Electrónica.
Unidad didáctica 6 Diseño de páginas Web.
Ajax en 3 Capas Ing. Pedro Luis Rodriguez. El Cliente/Servidor WEB Cliente: Navegador WEB. Internet Explorer, Mozilla FireFox Cliente: Navegador WEB.
Google Docs y Talk. Vamos a hacer una pequeña presentación de google docs y google talk en la que hablaremos de: Historia Historia Ventajas y desventajas.
NAVEGADOR.
Unidad 1 Aplicaciones web de escritorio
Kleber Andres Loayza Castro Hernán Eduardo Cueva Delgado
Lenguajes de Programación
Introducción al Lenguaje. ¿Qué es PHP? O Es un lenguaje de programación que es interpretado por un servidor web. O El lenguaje es genérico. PHP está orientado.
Rogelio Ferreira Escutia. 2 “Introducción a AJAX”, Javier Eguíluz Pérez, mayo 2010 Término AJAX  El término AJAX se presentó.
Guía fácil del RSS.
Los siguientes términos y acrónimos son un resumen de las tecnologías web actuales: ASP (Active Server Pages)  Páginas de servidor activas.  Tecnología.
LOGO e-Learning Desktop Integración de RIA’s a objetos de Aprendizaje Alvaro Rodríguez, Darvin Orozco, Rocael Hernández Universidad Galileo {alvrodriguez,
INTERNET.
Navegadores y buscadores
NAVEGADORES.
Gabriel Montañés León. RSS es el acrónimo de Really Simple Sindication (Sindicación Realmente Simple). Es un formato basado en el lenguaje XML que permite.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
Clase 5 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
Cristian Fonnegra Marin
Autores: Alejandro Teixeira Alexander Parra SOCIEDAD Y INTERNET HTML V.5 ACTIONSCRIPTAJAX HERRAMIENTAS WEB 2.0.
DIEGO ARMANDO GÓMEZ CUERVO Desarrollo de aplicaciones WEB con herramientas de software libre.
P ROGRAMACIÓN W EB Desarrollo de aplicaciones Web.
Trabajo colaborativo Inma
Pablo Barrantes Illary Huaylupo David Navas Alan Wong.
Tutor: Ing. Juan E. Talavera Horn 2010 Google Web Toolkit (GWT)
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Navegador Trabajo extra clase.
AJAX Asynchronous JavaScript And XML.
¿Qué es jQuery? jQuery es una librería gratuita y open source, que simplifica la creación de páginas web altamente interactivas. Funciona.
Integrante: Mariana Alcalá Hdz María del Carmen Andrade G. Alondra E. García Mtz Joselyn Gpe García V. Antonio de Jesús Hdz R. Cristian Jesús Ruvalcaba.
INTEGRANTE: FLORES GODOY JUAN E. Grupo:308. Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla.
APLICACIONES DE LINUX CLASIFICACION Navegador de Internet Mozilla Firefox SUSE Linux Enterprise Desktop incluye Firefox, la versión más reciente del navegador.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
3 Aplicaciones Educativas Nuevas tecnologías de la Educación 2010 Tema Gonzalo Silió Sáiz Parte II: Web 2.0: wiki y blogs ¿Qué es la WEB 2.0 ?
Java Script. Como habilitar JavaScript en tu navegador
1/11Departamento de Informática Tributaria AJAX Fundamentos básicos ( ) AJAX Fundamentos básicos ( )
GESTIÓN Y ADMINISTRACIÓN WEB. INTRODUCCIÓN A INTERNET Internet constituye una vía de comunicación y una fuente de recursos de información a escala mundial.
Aplicaciones Web Verano Programación de aplicaciones Web FCC-BUAP Verano 2016BMB - RAM2.
Ajax (ASYNCHRONOUS JAVASCRIPT AND XML)
Introducción a AJAX.
Transcripción de la presentación:

Introducción a AJAX Iván Molina Molina molixmoli@gmail.com

¿Qué es AJAX? Acrónimo de Asynchronous JavaScript And XML Definición No es ninguna tecnología, ni lenguaje de programación Es una técnica de desarrollo web que combina varias tecnologías Consiguiendo una navegación más ágil y rápida, más dinámica. Definición

Historia Desarrollo de Microsoft de Remote Scripting (hace 10 años) IFrame (Microsoft Internet Explorer 3, 1996) Carga asíncrona de páginas Layers (Netscape 4, 1997) Microsoft's Remote Scripting (o MSRS, 1998) Empleo de Applet Java Internet Explorer 4 y Netscape 4 Outlook Web Access Definición del término AJAX(Febrero 2005) Jesse James Garrett: “A New Approach to Web Applications”

Tecnologías empleadas XHTML (o HTML) y CSS Presentación de datos Document Object Model (DOM) Mostrar e interactuar dinámicamente con la información XML y XSLT Intercambiar y manipular datos con el servidor web XMLHttpRequest Recuperación y envío de datos de modo asíncrono JavaScript Nexo de unión

Web 2.0 Actualmente la mayoría de las actividades del usuario se desarrollan en la web (Correo, Chats, compartir información…) Web 1.0 Páginas personales Email/Grupo de noticias Mp3 Terraserver Británica Online Ofoto Web 1.5 Wikis Foros de discusión Napster MapQuest Web 2.0 Blogging RSS-Sindicación iTunes Google Maps Wikipedia Flickr

Web 2.0 Se está produciendo una evolución de las aplicaciones tradicionales hacia aplicaciones web enfocadas al usuario final, también conocidas RIA (Rich Internet Application): Interfaces intuitivos Sistemas sencillos e intuitivos Comunicación de cambios al usuario

Web 2.0 Tecnologías o desarrollos en las que se sustentan las RIA: Applet Macromedia Flash Java Web Start DHTML DHTML con Iframe AJAX

XMLHttpRequest API que se encuentra implementado en el navegador y que proporciona los métodos y propiedades necesarios para la comunicación con el servidor mediante HTTP Originalmente desarrollado por Microsoft como un objeto ActiveX, disponible desde Internet Explorer 5 Utilizada por JavaScript, Jscript, VBScript u otros lenguajes de scripting de navegadores web Emplea un canal de conexión independiente

Comunicación GET/POST Documentos pueden ser texto plano/xml Características de XMLHttpRequest Comunicación GET/POST Documentos pueden ser texto plano/xml Trabaja en background Número limitado de peticiones Permite especificar un manejador para el control de cambios de estado Manejador notifica el estado de la petición: Inicializada Iniciada En proceso de retornar la información Operación completada

Tipo de Respuesta Documento XML Texto JavaScript Procesado en el cliente Mostrado directamente JavaScript Evaluado en JavaScript mediante ‘eval()’ JSON, “JavaScript Object Notation”: Es un formato ligero para el intercambio de datos Es un subconjunto de la notación literal de objetos de Javascript pero no requiere el uso de Javascript

EJEMPLO JSON Definición de barra de menús usando JSON y XML:

Métodos de XMLHttpRequest open("method", "URL", syn/asyn): Asigna la URL de destino, el método y otros parámetros opcionales de una petición pendiente send(content): Envía la petición, opcionalmente se puede enviar una cadena de texto o un objeto DOM abort(): Detiene la petición actual getAllResponseHeaders(): Devuelve todas las cabeceras de la respuesta como pares de etiqueta y valores en una cadena getResponseHeader("headerLabel"): Devuelve el valor de una cabecera determinada setRequestHeader("label", "value"): Asigna un valor al par label/value para la cabecera enviada.

Propiedades de XMLHttpRequest onreadystatechange: El manejador del evento llamado en cada cambio de estado del objeto readyState: Indica el estado del objeto o la petición 0 = sin inicializar 1 =cargando 2 = fin de la carga 3 = actualizando la información recibida 4 = Operación completada status: Estado HTTP devuelto por el servidor 404 si la página no se encuentra 200 si todo ha ido bien

Propiedades de XMLHttpRequest responseText: Cadena de texto con los datos devueltos por el servidor responseXML: Objeto DOM devuelto por el servidor statusText: Respuesta del servidor asociada al status (mensaje de texto)

XMLHttpRequest Alternativas: IFrame oculto Netscape's LiveConnect Microsoft's ActiveX Microsoft's XML Data Islands Macromedia Flash Player Java Applets

Funcionamiento de AJAX Usuario provoca un evento Se crea y configura un objeto XMLHttpRequest El objeto XMLHttpRequest realiza una llamada al servidor La petición se procesa en el servidor El servidor retorna un documento XML que contienen el resultado El objeto XMLHttpRequest llama a la función callback() y procesa el resultado Se actualiza el DOM de la página asociado con la petición con el resultado devuelto

Web Tradicional vs AJAX (1)

Web Tradicional vs AJAX (2)

Navegadores soportados Microsoft Internet Explorer 5.0 Navegadores basados en Gecko (versión 7.1): Mozilla, Mozilla Firefox, SeaMonkey, Camino, Flock, Epiphany, Galeon y Netscape Navegadores con API KHTML (versión 3.2): Konqueror 3.2, Safari 1.2 Opera 8.0 Navegadores disponibles para de teléfonos móviles: Opera Mobile Browser versión 8.0 Navegador para S60 de Nokia basado en Safari y API KHTML

Ventajas Mayor interactividad Facilidad de manejo del usuario Recuperación asíncrona de datos, reduciendo el tiempo de espera del usuario Facilidad de manejo del usuario El usuario tiene un mayor conocimiento de las aplicaciones de escritorio Se reduce el tamaño de la información intercambiada Portabilidad entre plataformas No requieren instalación de plugins, applets de Java, ni ningún otro elemento Código público

Inconvenientes y Críticas Usabilidad: Comportamiento del usuario ante la navegación Botón de volver atrás del navegador - Empleo de iframe ocultos para almacenar el historial) - Empleo de fragmento identificador del URL (‘#’) y recuperación mediante JavaScript Problema al agregar marcadores/favoritos en un momento determinado de la aplicación - Empleo del fragmento identificador del URL (‘#’) y recuperación mediante JavaScript Problemas al imprimir páginas renderizadas dinámicamente Tiempos de respuesta entre la petición del usuario y la respuesta del servidor Empleo de feedback visual para indicar el estado de la petición al usuario

Inconvenientes y Críticas JavaScript Requiere que los usuarios tengan el JavaScript activado en el navegador En el caso de Internet Explorer 6 y anteriores, que necesita tener activado el ActiveX (En Internet Explorer 7, se implementa como JavaScript nativo) Como en DHTML, debe comprobarse la compatibilidad entre navegadores y plataformas

Accesibilidad Los desarrolladores necesitan proporcionar opciones para usuarios en otras plataformas o navegadores que no utilicen AJAX

USOS DE AJAX Validación de datos de formularios en tiempo real Identificadores de usuario, nº de serie, códigos postales u otro código especial que necesite validación en el lado del servidor antes de ser enviado el formulario. Autocompletado Direcciones de correo, nombres, ciudades Operaciones de detalle Obtener información más detallada de un producto GUI avanzadas Controles en árbol, menús, barras de progreso Refresco de datos Notificaciones del servidor

USOS DE AJAX Actualizar o eliminar registros Expandir formularios web Devolver peticiones simples de búsqueda Editar árboles de categorías

Bibliotecas AJAX Es posible diferenciar dos tipos de bibliotecas: Javascript: Facilitan únicamente el uso de AJAX. Se trata de una biblioteca de javascript que facilita el intercambio de información con el servidor Específicas de lenguaje: Genera directamente el JavaScript desde el lenguaje del servidor, de este modo se definen los métodos y se realizan los intercambios de información de forma completamente transparente.

Bibliotecas AJAX DOJO Toolkit (http://dojotoolkit.org/) Biblioteca JavaScript de código abierto Proporciona un API para el control y manipulación de historial Proporciona en el lado del cliente para la manipulación de URL y marcadores/favoritos Widgets: Ordenar tablas Validación de formularios Menus y barras de menús Google y Yahoo! Maps

Bibliotecas AJAX Prototype (http://prototype.conio.net/) Framework en JavaScript para el desarrollo sencillo y dinámico de aplicaciones web Proyectos basados en Prototype: Ruby on Rails (http://www.rubyonrails.com/) script.aculo.us, Thomas Fuchs (http://script.aculo.us/) Rico (http://openrico.org/) Behaviour (http://www.ripcord.co.nz/behaviour/)

Bibliotecas AJAX XAJAX (http://www.xajaxproject.org/) Es una biblioteca PHP de código abierto Abundante documentación Fácil de utilizar: No requiere gran conocimiento de JavaScript Sencillo de emplear: Incluir biblioteca en página PHP Instanciar el objeto ‘xajax’ Implementación de nuevas funciones en PHP XOAD (http://www.xoad.org/, antes NAJAX) Biblioteca orientada a objetos basada en PHP Documentación de las clases y tutoriales sencillos Emplea JSON y objetos PHP para la comunicación Soporta eventos del lado del cliente y del servidor

Ejemplos de Aplicaciones (1) Gmail: Gmail (http://gmail.com) Google Maps (http://maps.google.com/) Google Suggest (http://www.google.com/webhp?complete=1&hl=en) Google Calendar(http://www.google.com/calendar/) Microsoft: Windows Live Mail (http://mail.live.com) Windows Local Live(antes MSN Virtual Earth, http://local.live.com) Amazon Maps (http://maps.a9.com/) Amazon: (http://www.a9.com) HousingMaps (http://www.housingmaps.com/), con Google Maps Nuevo Yahoo! Mail

Ejemplos de Aplicaciones (2) Aplicaciones de Escritorio: Suite de oficina gOffice (http://www.goffice.com/) Thinkfree(http://online.thinkfree.com/) Zimbra (http://www.zimbra.com) Procesadores de texto Writely (http://www.writely.com) FCKeditor(http://www.fckeditor.net/) Hoja de cálculo Num Sum (http://numsum.com) Numbler (http://numbler.com/) Calendarios Kiko (http://www.kiko.com/)

Ejemplos de Aplicaciones (3) Notas: Webnote(http://www.aypwip.org/webnote/) Lector RSS: Backbase (http://www.backbase.com/demos/RSS/) Netvibes (http://www.netvibes.com/) Mensajería instantánea: Meebo (http://www.meebo.com/) IM (http://ajaxim.unwieldy.net/) Gestor de bases de datos MySQL (http://www.turboajax.com/turbodbadmin/)

Ejemplos de Aplicaciones (4) Sistema Operativo (http://www.michaelrobertson.com/ajaxos/) AJAXLaunch AJAXWrite : Procesador de textos (http://www.ajaxlaunch.com/ajaxwrite/) AJAXSketch: Editor gráfico (http://www.ajaxsketch.com/) Eyespot: Reproductor de Video (http://www.eyespot.com/) ajaxXLS: Hojas de cálculo (http://www.ajaxxls.com/) ajaxTunes: Reproductor de música (http://www.ajaxtunes.com/) ajaxOS: Sistema Operativo basado en Linspire (http://www.myajaxos.com/)

¿Qué es COMET? Técnica de programación Web similar a AJAX Utiliza XMLHttpRequest para la entrega de datos entre cliente y servidor a través del protocolo HTTP También conocido como “Server Push o HTTP Push” Diferencias con AJAX: Emplea una conexión persistente entre el cliente y el servidor web La entrega de datos se hace sin que el usuario lo haya solicitado

COMET FUNCIONAMIENTO : el cliente no solicita los datos, pero si envía información al servidor el servidor no le responde al cliente con un bloque de datos, se espera a que haya algún evento de lado del servidor para enviar la información HISTORIA : Alex de DojoToolkit.org fue el primero en definir esta técnica, y Dojo es el primer framework que implementa a Comet

COMET VENTAJAS : Comunicación abierta con el servidor  Reduce los tiempos de respuesta INCONVENIENTES : Compartir la misma conexión para diferentes peticiones (Conexión no bloqueante) Capacidad del servidor de mantener el thread asociado a la petición Escalabilidad

COMET vs AJAX

EJEMPLOS MENSAJERÍA INSTANTÁNEA : Integración de Gtalk en Gmail Jot Live (http://jotlive.com/) Renkoo (http://renkoo.com) cgi:irc (http://cgiirc.sourceforge.net/) Meebo (http://www.meebo.com/)

Referencias “Ajax: A New Approach to Web Applications” http://adaptivepath.com/publications/essays/archives/000385.php Wikipedia (http://wikipedia.org) AJAX Magazine (http://ajax.phpmagazine.net/) Baluart.net (http://www.baluart.net/categoria/ajax) “Comet: Low Latency Data for the Browser” http://alex.dojotoolkit.org/?p=545