SlideShare a Scribd company logo
1 of 46
Desarrollo de Aplicaciones
para Móviles
                       AJAX
¿Qué es AJAX?




 Ajax, acrónimo de Asynchronous JavaScript And XML
 (JavaScript asíncrono y XML), es una técnica de
 desarrollo web para crear aplicaciones.
¿Qué es AJAX?




 Ajax es una tecnología asíncrona, en el sentido de
 que los datos adicionales se solicitan al servidor y se
 cargan en segundo plano sin interferir con la
 visualización ni el comportamiento de la página.
¿Qué es AJAX?




Estas aplicaciones se ejecutan en el navegador (cliente)
  de los usuarios.
Tecnologías incluidas en Ajax

Ajax es una combinación de
tecnologías existentes:
         • XHTML (o HTML)

         • DOM

         • XMLHttpRequest

         • XML
Tecnologías incluidas en Ajax




 XHTML o HTML y CSS

 Para crear una presentación basada en estándares
Tecnologías incluidas en Ajax




 DOM - Document Object Model

 Para la interacción y manipulación dinámica de la presentación.
Tecnologías incluidas en Ajax




 XMLHttpRequest

 Para intercambiar datos de forma asíncrona con el servidor web.
Tecnologías incluidas en Ajax




XML
Formato usado para la transferencia de datos solicitados al servidor,
aunque cualquier formato puede funcionar, incluyendo HTML
preformateado, texto plano,etc
Tecnologías incluidas en Ajax




JavaScript


Para unir todas las demás tecnologías.
Tecnologías incluidas en Ajax




Ajax no constituye una tecnología en sí, sino que es un
término que engloba a un grupo de estas que trabajan
conjuntamente.
Navegadores que permiten Ajax




Algunos de los navegadores que permiten AJAX son:
•   Navegadores basados en Gecko como Mozilla, Mozilla Firefox versión 7.1 y
    superiores
•   Navegadores basados en WebKit como Google Chrome de Google o Safari de
    Apple.
•   Microsoft Internet Explorer para Windows versión 5.0 y superiores, y los
    navegadores basados en él
•   Opera versión 8.0 y superiores, incluyendo Opera Mobile Browser versión 8.0 y
    superiores.
Aplicaciones basadas en AJAX




•   Gestores de correo electrónico: Gmail, Yahoo Mail, Windows Live Mail.
•   Cartografía: Google Maps, Yahoo Maps, Windows Live Local.
•   Aplicaciones web y productividad: Google Docs, Zimbra, Zoho.
•   Otras: Netvibes [metapágina], Digg [noticias], Meebo [mensajería], 30
    Boxes [calendario], Flickr [fotografía
Estructura de la aplicación

• El núcleo de una aplicación AJAX esta compuesta de por componentes
  de Javascript, componentes de XML y un lenguaje del lado del servidor
  (http).



• Para entender que hace una aplicación AJAX, lo vamos a comparar con
  una aplicación tradicional de comunicación entre el navegador y el
  servidor que nos sirve la información.
Estructura de la aplicación
Estructura de la aplicación

• Cada pagina individual que puede contener textos, imágenes, formularios,
  representa un todo y deber cargarse y recargarse en su totalidad.

• Ej Formulario: podemos completar datos, borrar, corregir pero hasta
  tanto no presionemos el botón ‘enviar’ la información no viaja al servidor.
  Al presionar el botón ‘enviar’ debemos esperar hasta poder ver la página
  actualizada.
Estructura de la aplicación

Inconvenientes de este tipo de `conversación’:

    – Retrasos significativos al volver a cargar la página.

    – Interrupción del flujo de la información para el usuario.

    – Para poder ver la información actualizada, es necesario enviar toda la
      información de la página al servidor, y el servidor, nos debe devolver la
      información completa nuevamente.
Estructura de la aplicación
Estructura de la aplicación

AJAX, hace uso de las páginas de manear interactiva.

  Responde a las tareas que lleve a cabo el usuario sin interrupción y
  llevando a cabo los procesos en segundo plano mientras que el usuario
  puede seguir usando la aplicación sin problemas.

                             ¿Cómo lo hace?
Estructura de la aplicación

• Crea capa de procesamiento entre la página web del usuario y el
  servidor, llamada Motor AJAX.

• Interceptar las peticiones del usuario y en un segundo plano maneja las
  comunicaciones con el servidor asincrónicamente.

• Tanto las peticiones como las respuestas del servidor no necesitan
  coincidir con las acciones que lleve a cabo el usuario, pueden pasar en
  cualquier momento sin que el usuario tenga que estar esperando la
  respuesta para seguir usando la aplicación.
Estructura de la aplicación

• El navegador le permite al usuario seguir trabajando, mientras que en
  segundo plano AJAX lleva a cabo la petición.



• AJAX usa XMLHttpRequest para llevar a cabo las peticiones y para que el
  motor AJAX en segundo plano siga la pista de lo que esta ocurriendo y
  sepa en que momento el servidor esta preparado para devolver la
  información al navegador.
Estructura de la aplicación

• Dentro de la aplicación AJAX, tenemos tres elementos:

    – Motor AJAX

    – El objeto XMLHTTPRequest

    – Procesamiento de los datos dentro del servidor (la comunicación le llega
      desde xmlhttpRequest como otra httprequest más)
Estructura de la aplicación

• Las aplicaciones AJAX no tienen en cuenta el lenguaje o SO que existen
  en el servidor.

• La única condición, es que el motor AJAX del lado del cliente, reciba del
  servidor, una respuesta bien formateada, si es así. AJAX funcionara con
  cualquier lenguaje del lado del servidor.

• AJAX tiene sentido para aplicaciones web que usan scrip del lado del
  servidor para su funcionamiento.
Estructura de la aplicación




  ¿Cómo generamos o actualizamos una aplicación
                    AJAX?
Estructura de la aplicación
Estructura de la aplicación

1) Decidir que evento o que
   acciones del usuario serán las
   responsables de que se lleve a
   cabo el envió de una petición
   http asincrónica.



   Ej. Podemos decidir que cuando se lleve a
   cabo el evento onMouseOver sobre una
   imagen, de cómo resultado una petición
   al servidor para recuperar información
   sobre lo que contiene la imagen
Estructura de la aplicación



2) El gestor de eventos, crea una
    petición al servidor, que el motor
    AJAX envía mediante
    XMLHTTPRequest de modo
    asincrónico
Estructura de la aplicación


3) Una vez hecha la petición, es
   necesario crear una serie de
   rutinas con código javascript,
   para monitorear el progreso en
   esa petición, hasta que el
   servidor nos diga que la petición,
   se completo satisfactoriamente.
Estructura de la aplicación


4) Nuevamente necesitamos una
   serie de rutinas javascript para
   recuperar la información que nos
   devuelve el servidor y procesar
   los dicha información..
Estructura de la aplicación



5) Procesados los datos devueltos,
   se envían a la página web que se
   actualizara con esta nueva
   información
Estructura de la aplicación
Veamos el codigo:
<html>
 <head>
 <title>Hola Mundo con AJAX</title></head>
 <body>
 Este primer ejemplo en ajax<br>
 obtiene un fichero del servidor web llamado passwords.txt y el contenido obtenido lo muestra
     con un alert en esta página web.<br>
<script type="text/javascript">
objetoAjax = new XMLHttpRequest();
 // Realizar peticion HTTP
 objetoAjax.open('GET', 'passwords.txt', false);
 objetoAjax.send(null);
 alert(objetoAjax.responseText);
</script>
  </body>
 </html>
Estructura de la aplicación
<html>                                              Lo que hace es:
 <head>
 <title>Hola Mundo con AJAX</title></head>          •   Instanciar el objeto ajax
 <body>                                             •   El método open contrario a lo que parece
 Este primer ejemplo en ajax<br>                        no hace mucho lo único que hace es
                                                        preparar la petición.
 obtiene un fichero del servidor web llamado
                                                    •   La petición que consiste en traer el
     passwords.txt y el contenido obtenido lo
                                                        contenido de un fichero de texto desde el
     muestra con un alert en esta página web.<br>       servidor ajax
<script type="text/javascript">                     •   El fichero se llama passwords.txt
objetoAjax = new XMLHttpRequest();                  •   El envió de la petición es realizado con
 // Realizar peticion HTTP                              send
 objetoAjax.open('GET', 'passwords.txt', false);    •   El resultado de la petición lo podemos
 objetoAjax.send(null);                                 acceder con la propiedad responseText
                                                    •   Imprimir el resultado o en este caso
 alert(objetoAjax.responseText);
                                                        mostrarlo en una ventana del tipo alert()
</script>                                               de javascript
  </body>
 </html>
Estructura de la aplicación
new XMLHttpRequest(); crea una instancia XMLHTTPRequest


Propiedades del objeto XMLHttpRequest

readystate:
0 Sin estado
1 configuramos la petición con open solamente
2 petición enviada pero sin respuesta
3 el servidor responde a la petición
4 petición completada
Estructura de la aplicación
new XMLHttpRequest(); crea una instancia XMLHTTPRequest


status:
  Esta propiedad nos muestra los códigos del servidor a la petición ajax.

200 petición procesada correctamente
404 recurso no encontrado
500 error del servidor
403 sin permiso en el servidor
405 problemas con el método

  Existen varios estados mas pero esto es en función del servidor pero a manera de
   ilustración tenemos los anteriores
Estructura de la aplicación

objetoAjax.open('GET', 'passwords.txt', false);

   Este método configura la petición para su envió de momento no hace nada
   y tenemos como parámetros:

tipo envió: GET o POST
url: dirección de envió, ejemplo http://localhost/passwords.txt ó passwords.txt
asíncrono: true ó false para una app síncrona (como esto es ajax es raro que tengamos
    peticiones del tipo síncrono)

Adicionalmente el user y pass del servidor
Estructura de la aplicación

objetoAjax.send(null);


 Este método envía la petición configurada con open.


 El parámetro que utiliza es opcional.

  Si utilizamos el tipo de datos POST: incluiremos información adicional.
  Si utilizamos el tipo de datos GET: será solo null
Estructura de la aplicación

alert(objetoAjax.responseText);


 Contiene en formato de texto la petición solicitada al servidor.

 Los valores status = 200 y readystate = 4 indican que la petición se proceso de
  manera correcta en el servidor y se encuentra finalizada .
Estructura de la aplicación
alert(objetoAjax.responseText);

 Contiene en formato de texto la petición solicitada al servidor.

 Los valores status = 200 y readystate = 4 indican que la petición se proceso de
  manera correcta en el servidor y se encuentra finalizada .
   Así quedaría la validación:

function mostrar() {
  if(objetoAjax.readyState == 4) {
    if(objetoAjax.status == 200) {
      //alert(objetoAjax.responseText);
               document.write(objetoAjax.responseText);
    }
  }
}
Indicador de progreso

 Los indicadores Ajax son herramientas que ayudan a los usuarios a entender qué
  está sucediendo en el sistema y cuáles son las respuesta de éste.

 Los indicadores deberían mostrarse ni bien comienza el requerimiento y ocultarse
 cuando termina
Indicador de progreso

 Los indicadores Ajax son herramientas que ayudan a los usuarios a entender qué
  está sucediendo en el sistema y cuáles son las respuesta de éste.

 Los indicadores deberían mostrarse ni bien comienza el requerimiento y ocultarse
 cuando termina
Indicador de progreso
Indicadores simples                      Indicadores de progreso

 Brindan una pista visual sobre que        Si una operación necesita más tiempo
 una petición está siendo llevada a         para ejecutarse deberías utilizar
 cabo. Se pueden mostrar como texto         indicadores de progreso.
 simple, o como una imagen,
 usualmente animada:                       Este tipo de indicadores proveen una
                                            información real acerca del estado de
 Texto simple: Mostrar un mensaje           progreso, usualmente mostrando cuánto
  significativo del tipo: “Enviando e-      tiempo ha pasado y cuánto queda para
  mail”.                                    que termine la petición.

 Imagen animada: Animaciones               Los indicadores de progreso también
  rotativas.                                pueden mostrar un mensaje de estado
                                            explicando qué está pasando en el
                                            momento preciso.
Indicador de progreso

•   Cualquiera sea la opción que selecciones, debes asegurarte que el
    indicador sea claramente visible.



•   Dependiendo del propósito, los indicadores pueden ser colocados dentro
    del mismo contexto que el elemento que comenzó la petición o pueden
    mostrarse en una única posición para todas las peticiones.
•   Ej: Google Mail ha centralizado los indicadores Ajax en la parte superior de
    la ventana que se revela ante cualquier petición Ajax.


                                                 Visita: http://preloaders.net/
Botones de retroceso

• Utilizando la etiqueta anclaje <a>
  y el nombre del parámetro con
  un hash en la url, se obtiene la
  funcionalidad del retroceso.

• En las pruebas realizadas, el
  código funciona con el botón de
  atrás, adelante y el botón de
   actualización
Botones de retroceso




 Otro ejemplo es con-botones.htm que lo pueden encontrar dentro de la
 carpeta botón-retroceso.
FEEDBACK

¿Alguna duda?

                ¿Preguntas?
La próxima clase vamos a ver:

          Diseño de interacción - Android

          • Convenciones de interacción de Android

          • La biblioteca jQTouch

More Related Content

What's hot

13. Configuracion De Aplicaciones Web Asp.Net
13.  Configuracion De Aplicaciones Web Asp.Net13.  Configuracion De Aplicaciones Web Asp.Net
13. Configuracion De Aplicaciones Web Asp.Netguest3cf6ff
 
Conceptos Introductorios Del Web 2
Conceptos Introductorios Del Web 2Conceptos Introductorios Del Web 2
Conceptos Introductorios Del Web 2Michelle Aguirre
 
10. Usando Datos Xml
10.  Usando Datos Xml10.  Usando Datos Xml
10. Usando Datos Xmlguest3cf6ff
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajaxjubacalo
 
12.android servicios web
12.android   servicios web12.android   servicios web
12.android servicios webguidotic
 
11. Servicios Web Xml
11.  Servicios Web Xml11.  Servicios Web Xml
11. Servicios Web Xmlguest3cf6ff
 
Taller programación web ajax con jquery
Taller programación web  ajax con jqueryTaller programación web  ajax con jquery
Taller programación web ajax con jqueryPablo Galeana Bailey
 
Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Sabrina Rodriguezpiña
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSPjubacalo
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletjubacalo
 
Vb net bd_2005_02
Vb net bd_2005_02Vb net bd_2005_02
Vb net bd_2005_02Paul Taco
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006Samuel Marrero
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesDanae Aguilar Guzmán
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETHaaron Gonzalez
 

What's hot (20)

13. Configuracion De Aplicaciones Web Asp.Net
13.  Configuracion De Aplicaciones Web Asp.Net13.  Configuracion De Aplicaciones Web Asp.Net
13. Configuracion De Aplicaciones Web Asp.Net
 
Conceptos Introductorios Del Web 2
Conceptos Introductorios Del Web 2Conceptos Introductorios Del Web 2
Conceptos Introductorios Del Web 2
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
10. Usando Datos Xml
10.  Usando Datos Xml10.  Usando Datos Xml
10. Usando Datos Xml
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
 
Servicios web
Servicios webServicios web
Servicios web
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
AJAX
AJAXAJAX
AJAX
 
12.android servicios web
12.android   servicios web12.android   servicios web
12.android servicios web
 
11. Servicios Web Xml
11.  Servicios Web Xml11.  Servicios Web Xml
11. Servicios Web Xml
 
Taller programación web ajax con jquery
Taller programación web  ajax con jqueryTaller programación web  ajax con jquery
Taller programación web ajax con jquery
 
Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
Curso Jsp
Curso JspCurso Jsp
Curso Jsp
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
Vb net bd_2005_02
Vb net bd_2005_02Vb net bd_2005_02
Vb net bd_2005_02
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parciales
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NET
 

Viewers also liked

Definición web 2.0
Definición web 2.0Definición web 2.0
Definición web 2.0Onekie2
 
Monica aspe conectivdidad_social_en_al_-_ers_p3
Monica aspe conectivdidad_social_en_al_-_ers_p3Monica aspe conectivdidad_social_en_al_-_ers_p3
Monica aspe conectivdidad_social_en_al_-_ers_p3pasego
 
George Siemens at TLT
George Siemens at TLTGeorge Siemens at TLT
George Siemens at TLTAlec Couros
 
Conectividad XXI
Conectividad XXIConectividad XXI
Conectividad XXIadentro1
 

Viewers also liked (7)

tecnología AJAX
tecnología AJAXtecnología AJAX
tecnología AJAX
 
Definición web 2.0
Definición web 2.0Definición web 2.0
Definición web 2.0
 
Monica aspe conectivdidad_social_en_al_-_ers_p3
Monica aspe conectivdidad_social_en_al_-_ers_p3Monica aspe conectivdidad_social_en_al_-_ers_p3
Monica aspe conectivdidad_social_en_al_-_ers_p3
 
George Siemens at TLT
George Siemens at TLTGeorge Siemens at TLT
George Siemens at TLT
 
que es la WEB 2.0
que es la WEB 2.0que es la WEB 2.0
que es la WEB 2.0
 
Conectividad XXI
Conectividad XXIConectividad XXI
Conectividad XXI
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
 

Similar to Clase 5 AJAX - Desarrollo de aplicaciones móviles

Similar to Clase 5 AJAX - Desarrollo de aplicaciones móviles (20)

Presentacion ajax
Presentacion   ajaxPresentacion   ajax
Presentacion ajax
 
Capitulo 4.7 prog iii
Capitulo 4.7 prog iiiCapitulo 4.7 prog iii
Capitulo 4.7 prog iii
 
Conceptos acerca de Ajax
Conceptos acerca  de AjaxConceptos acerca  de Ajax
Conceptos acerca de Ajax
 
Ajax
AjaxAjax
Ajax
 
Inicios Ajax
Inicios AjaxInicios Ajax
Inicios Ajax
 
Ajax
AjaxAjax
Ajax
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
Presentación1
Presentación1Presentación1
Presentación1
 
Ajax
AjaxAjax
Ajax
 
Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
Servlet
ServletServlet
Servlet
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la Web
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)
 

More from Christian Cabrera

More from Christian Cabrera (8)

Clase7 diseñode interacciónblackberry–iphone
Clase7 diseñode interacciónblackberry–iphoneClase7 diseñode interacciónblackberry–iphone
Clase7 diseñode interacciónblackberry–iphone
 
Flare3D Eva2011
Flare3D Eva2011Flare3D Eva2011
Flare3D Eva2011
 
Departamento de desarrollo
Departamento de desarrolloDepartamento de desarrollo
Departamento de desarrollo
 
Departamento De Legislación
Departamento De LegislaciónDepartamento De Legislación
Departamento De Legislación
 
Departamento Servicio De Atencion
Departamento  Servicio De AtencionDepartamento  Servicio De Atencion
Departamento Servicio De Atencion
 
Departamento De Cordinacion
Departamento De CordinacionDepartamento De Cordinacion
Departamento De Cordinacion
 
Departamento De Redación
Departamento De RedaciónDepartamento De Redación
Departamento De Redación
 
Solicitud Y Envios
Solicitud Y EnviosSolicitud Y Envios
Solicitud Y Envios
 

Recently uploaded

Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 

Recently uploaded (20)

Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 

Clase 5 AJAX - Desarrollo de aplicaciones móviles

  • 2. ¿Qué es AJAX? Ajax, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones.
  • 3. ¿Qué es AJAX? Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página.
  • 4. ¿Qué es AJAX? Estas aplicaciones se ejecutan en el navegador (cliente) de los usuarios.
  • 5. Tecnologías incluidas en Ajax Ajax es una combinación de tecnologías existentes: • XHTML (o HTML) • DOM • XMLHttpRequest • XML
  • 6. Tecnologías incluidas en Ajax XHTML o HTML y CSS Para crear una presentación basada en estándares
  • 7. Tecnologías incluidas en Ajax DOM - Document Object Model Para la interacción y manipulación dinámica de la presentación.
  • 8. Tecnologías incluidas en Ajax XMLHttpRequest Para intercambiar datos de forma asíncrona con el servidor web.
  • 9. Tecnologías incluidas en Ajax XML Formato usado para la transferencia de datos solicitados al servidor, aunque cualquier formato puede funcionar, incluyendo HTML preformateado, texto plano,etc
  • 10. Tecnologías incluidas en Ajax JavaScript Para unir todas las demás tecnologías.
  • 11. Tecnologías incluidas en Ajax Ajax no constituye una tecnología en sí, sino que es un término que engloba a un grupo de estas que trabajan conjuntamente.
  • 12. Navegadores que permiten Ajax Algunos de los navegadores que permiten AJAX son: • Navegadores basados en Gecko como Mozilla, Mozilla Firefox versión 7.1 y superiores • Navegadores basados en WebKit como Google Chrome de Google o Safari de Apple. • Microsoft Internet Explorer para Windows versión 5.0 y superiores, y los navegadores basados en él • Opera versión 8.0 y superiores, incluyendo Opera Mobile Browser versión 8.0 y superiores.
  • 13. Aplicaciones basadas en AJAX • Gestores de correo electrónico: Gmail, Yahoo Mail, Windows Live Mail. • Cartografía: Google Maps, Yahoo Maps, Windows Live Local. • Aplicaciones web y productividad: Google Docs, Zimbra, Zoho. • Otras: Netvibes [metapágina], Digg [noticias], Meebo [mensajería], 30 Boxes [calendario], Flickr [fotografía
  • 14. Estructura de la aplicación • El núcleo de una aplicación AJAX esta compuesta de por componentes de Javascript, componentes de XML y un lenguaje del lado del servidor (http). • Para entender que hace una aplicación AJAX, lo vamos a comparar con una aplicación tradicional de comunicación entre el navegador y el servidor que nos sirve la información.
  • 15. Estructura de la aplicación
  • 16. Estructura de la aplicación • Cada pagina individual que puede contener textos, imágenes, formularios, representa un todo y deber cargarse y recargarse en su totalidad. • Ej Formulario: podemos completar datos, borrar, corregir pero hasta tanto no presionemos el botón ‘enviar’ la información no viaja al servidor. Al presionar el botón ‘enviar’ debemos esperar hasta poder ver la página actualizada.
  • 17. Estructura de la aplicación Inconvenientes de este tipo de `conversación’: – Retrasos significativos al volver a cargar la página. – Interrupción del flujo de la información para el usuario. – Para poder ver la información actualizada, es necesario enviar toda la información de la página al servidor, y el servidor, nos debe devolver la información completa nuevamente.
  • 18. Estructura de la aplicación
  • 19. Estructura de la aplicación AJAX, hace uso de las páginas de manear interactiva. Responde a las tareas que lleve a cabo el usuario sin interrupción y llevando a cabo los procesos en segundo plano mientras que el usuario puede seguir usando la aplicación sin problemas. ¿Cómo lo hace?
  • 20. Estructura de la aplicación • Crea capa de procesamiento entre la página web del usuario y el servidor, llamada Motor AJAX. • Interceptar las peticiones del usuario y en un segundo plano maneja las comunicaciones con el servidor asincrónicamente. • Tanto las peticiones como las respuestas del servidor no necesitan coincidir con las acciones que lleve a cabo el usuario, pueden pasar en cualquier momento sin que el usuario tenga que estar esperando la respuesta para seguir usando la aplicación.
  • 21. Estructura de la aplicación • El navegador le permite al usuario seguir trabajando, mientras que en segundo plano AJAX lleva a cabo la petición. • AJAX usa XMLHttpRequest para llevar a cabo las peticiones y para que el motor AJAX en segundo plano siga la pista de lo que esta ocurriendo y sepa en que momento el servidor esta preparado para devolver la información al navegador.
  • 22. Estructura de la aplicación • Dentro de la aplicación AJAX, tenemos tres elementos: – Motor AJAX – El objeto XMLHTTPRequest – Procesamiento de los datos dentro del servidor (la comunicación le llega desde xmlhttpRequest como otra httprequest más)
  • 23. Estructura de la aplicación • Las aplicaciones AJAX no tienen en cuenta el lenguaje o SO que existen en el servidor. • La única condición, es que el motor AJAX del lado del cliente, reciba del servidor, una respuesta bien formateada, si es así. AJAX funcionara con cualquier lenguaje del lado del servidor. • AJAX tiene sentido para aplicaciones web que usan scrip del lado del servidor para su funcionamiento.
  • 24. Estructura de la aplicación ¿Cómo generamos o actualizamos una aplicación AJAX?
  • 25. Estructura de la aplicación
  • 26. Estructura de la aplicación 1) Decidir que evento o que acciones del usuario serán las responsables de que se lleve a cabo el envió de una petición http asincrónica. Ej. Podemos decidir que cuando se lleve a cabo el evento onMouseOver sobre una imagen, de cómo resultado una petición al servidor para recuperar información sobre lo que contiene la imagen
  • 27. Estructura de la aplicación 2) El gestor de eventos, crea una petición al servidor, que el motor AJAX envía mediante XMLHTTPRequest de modo asincrónico
  • 28. Estructura de la aplicación 3) Una vez hecha la petición, es necesario crear una serie de rutinas con código javascript, para monitorear el progreso en esa petición, hasta que el servidor nos diga que la petición, se completo satisfactoriamente.
  • 29. Estructura de la aplicación 4) Nuevamente necesitamos una serie de rutinas javascript para recuperar la información que nos devuelve el servidor y procesar los dicha información..
  • 30. Estructura de la aplicación 5) Procesados los datos devueltos, se envían a la página web que se actualizara con esta nueva información
  • 31. Estructura de la aplicación Veamos el codigo: <html> <head> <title>Hola Mundo con AJAX</title></head> <body> Este primer ejemplo en ajax<br> obtiene un fichero del servidor web llamado passwords.txt y el contenido obtenido lo muestra con un alert en esta página web.<br> <script type="text/javascript"> objetoAjax = new XMLHttpRequest(); // Realizar peticion HTTP objetoAjax.open('GET', 'passwords.txt', false); objetoAjax.send(null); alert(objetoAjax.responseText); </script> </body> </html>
  • 32. Estructura de la aplicación <html> Lo que hace es: <head> <title>Hola Mundo con AJAX</title></head> • Instanciar el objeto ajax <body> • El método open contrario a lo que parece Este primer ejemplo en ajax<br> no hace mucho lo único que hace es preparar la petición. obtiene un fichero del servidor web llamado • La petición que consiste en traer el passwords.txt y el contenido obtenido lo contenido de un fichero de texto desde el muestra con un alert en esta página web.<br> servidor ajax <script type="text/javascript"> • El fichero se llama passwords.txt objetoAjax = new XMLHttpRequest(); • El envió de la petición es realizado con // Realizar peticion HTTP send objetoAjax.open('GET', 'passwords.txt', false); • El resultado de la petición lo podemos objetoAjax.send(null); acceder con la propiedad responseText • Imprimir el resultado o en este caso alert(objetoAjax.responseText); mostrarlo en una ventana del tipo alert() </script> de javascript </body> </html>
  • 33. Estructura de la aplicación new XMLHttpRequest(); crea una instancia XMLHTTPRequest Propiedades del objeto XMLHttpRequest readystate: 0 Sin estado 1 configuramos la petición con open solamente 2 petición enviada pero sin respuesta 3 el servidor responde a la petición 4 petición completada
  • 34. Estructura de la aplicación new XMLHttpRequest(); crea una instancia XMLHTTPRequest status: Esta propiedad nos muestra los códigos del servidor a la petición ajax. 200 petición procesada correctamente 404 recurso no encontrado 500 error del servidor 403 sin permiso en el servidor 405 problemas con el método Existen varios estados mas pero esto es en función del servidor pero a manera de ilustración tenemos los anteriores
  • 35. Estructura de la aplicación objetoAjax.open('GET', 'passwords.txt', false); Este método configura la petición para su envió de momento no hace nada y tenemos como parámetros: tipo envió: GET o POST url: dirección de envió, ejemplo http://localhost/passwords.txt ó passwords.txt asíncrono: true ó false para una app síncrona (como esto es ajax es raro que tengamos peticiones del tipo síncrono) Adicionalmente el user y pass del servidor
  • 36. Estructura de la aplicación objetoAjax.send(null); Este método envía la petición configurada con open. El parámetro que utiliza es opcional. Si utilizamos el tipo de datos POST: incluiremos información adicional. Si utilizamos el tipo de datos GET: será solo null
  • 37. Estructura de la aplicación alert(objetoAjax.responseText); Contiene en formato de texto la petición solicitada al servidor. Los valores status = 200 y readystate = 4 indican que la petición se proceso de manera correcta en el servidor y se encuentra finalizada .
  • 38. Estructura de la aplicación alert(objetoAjax.responseText); Contiene en formato de texto la petición solicitada al servidor. Los valores status = 200 y readystate = 4 indican que la petición se proceso de manera correcta en el servidor y se encuentra finalizada . Así quedaría la validación: function mostrar() { if(objetoAjax.readyState == 4) { if(objetoAjax.status == 200) { //alert(objetoAjax.responseText); document.write(objetoAjax.responseText); } } }
  • 39. Indicador de progreso Los indicadores Ajax son herramientas que ayudan a los usuarios a entender qué está sucediendo en el sistema y cuáles son las respuesta de éste. Los indicadores deberían mostrarse ni bien comienza el requerimiento y ocultarse cuando termina
  • 40. Indicador de progreso Los indicadores Ajax son herramientas que ayudan a los usuarios a entender qué está sucediendo en el sistema y cuáles son las respuesta de éste. Los indicadores deberían mostrarse ni bien comienza el requerimiento y ocultarse cuando termina
  • 41. Indicador de progreso Indicadores simples Indicadores de progreso Brindan una pista visual sobre que Si una operación necesita más tiempo una petición está siendo llevada a para ejecutarse deberías utilizar cabo. Se pueden mostrar como texto indicadores de progreso. simple, o como una imagen, usualmente animada: Este tipo de indicadores proveen una información real acerca del estado de Texto simple: Mostrar un mensaje progreso, usualmente mostrando cuánto significativo del tipo: “Enviando e- tiempo ha pasado y cuánto queda para mail”. que termine la petición. Imagen animada: Animaciones Los indicadores de progreso también rotativas. pueden mostrar un mensaje de estado explicando qué está pasando en el momento preciso.
  • 42. Indicador de progreso • Cualquiera sea la opción que selecciones, debes asegurarte que el indicador sea claramente visible. • Dependiendo del propósito, los indicadores pueden ser colocados dentro del mismo contexto que el elemento que comenzó la petición o pueden mostrarse en una única posición para todas las peticiones. • Ej: Google Mail ha centralizado los indicadores Ajax en la parte superior de la ventana que se revela ante cualquier petición Ajax. Visita: http://preloaders.net/
  • 43. Botones de retroceso • Utilizando la etiqueta anclaje <a> y el nombre del parámetro con un hash en la url, se obtiene la funcionalidad del retroceso. • En las pruebas realizadas, el código funciona con el botón de atrás, adelante y el botón de actualización
  • 44. Botones de retroceso Otro ejemplo es con-botones.htm que lo pueden encontrar dentro de la carpeta botón-retroceso.
  • 45. FEEDBACK ¿Alguna duda? ¿Preguntas?
  • 46. La próxima clase vamos a ver: Diseño de interacción - Android • Convenciones de interacción de Android • La biblioteca jQTouch