+ All Categories
Home > Documents > Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D....

Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D....

Date post: 31-Dec-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
16
Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) [email protected]
Transcript
Page 1: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Introducción a AJAX

Eduardo Ostertag Jenkins, Ph.D.

OBCOM INGENIERIA S.A. (Chile)

[email protected]

Page 2: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Temario

Introducción a AJAX

Arquitectura y tecnologías

HTML + CSS

JavaScript

DOM

XMLHttpRequest

Servicios REST

Ejemplo de RIA con AJAX

Código HTML y JavaScript

Servicio REST (VB y Java)

Page 3: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Arquitectura típica AJAX

Servidor Web

Browser

AJAX

Servicios REST

Lógica Negocio (EJB, COM+)

Modelo de Datos (Tablas)

Page 4: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

¿Qué es la tecnología AJAX?

AJAX (Asynchonous JavaScript and XML)

Se programa en lenguaje JavaScript

DHTML (HTML+CSS) para la interfaz

Estructura DOM (Document Object Model)

XMLHttpRequest comunicación asíncrona

Page 5: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

¿Qué es un servicio REST?

REST (Representation State Transfer)

Como SOAP “light” – sin WSDL, UDDI, etc.

Se utilizan comandos GET/POST de HTTP

Se utilizan los códigos de retorno de HTTP

La data normalmente es XML y DHTML

Se programan en páginas HTML, JSP, PHP

Page 6: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Saludo AJAX: Interfaz Gráfica

Page 7: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Saludo AJAX: Página HTML (1)

<html>

<head>

<title>Saludos usando AJAX</title>

<script language="JavaScript">

<!—

JavaScript en próxima dispositiva

-->

</script>

</head>

<body>

<input type="text" id="helloName" title="Ingrese su nombre"/>

<input type="submit" value="saludar" onclick="callHello(helloName.value)"/>

<p id="helloReply">No hemos enviado un saludo</p>

</body>

</html>

helloHTML.html

Page 8: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Saludo AJAX: Página HTML (2)

var gRequest; // Used in callHello and helloResponse

function callHello(name)

{

var url = "helloHTML.asp?name="+encodeURIComponent(name);

if (window.XMLHttpRequest) { // Native XMLHttpRequest

gRequest = new XMLHttpRequest();

gRequest.onreadystatechange = helloResponse;

gRequest.open("GET", url, true);

gRequest.send(null);

}

else if (window.ActiveXObject) { // Windows IE ActiveX

gRequest = new ActiveXObject("Microsoft.XMLHTTP");

gRequest.onreadystatechange = helloResponse;

gRequest.open("GET", url, true);

gRequest.send();

}

}

helloHTML.html

Page 9: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Saludo AJAX: Página HTML (3)

function helloResponse()

{

if (gRequest.readyState == 4) // Only if "complete"

{

if (gRequest.status != 200) // Check "OK" status

{

alert("Download error: "+gRequest.statusText);

return;

}

var result = gRequest.responseText;

var element = document.getElementById("helloReply");

element.innerHTML = result;

}

}

helloHTML.html

Page 10: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Saludo AJAX: Servicio REST

<%@ Language="VBScript" CodePage=65001 %><%

Response.ContentType = "text/html;charset=utf-8"

Response.CodePage = 65001

Response.CacheControl = "no-cache"

%>Hola <b><%=Request.QueryString("name")%></b>. ¿Cómo estas?

helloHTML.asp (VB)

<%@ page contentType="text/html" pageEncoding=“utf-8" %><%

request.setCharacterEncoding("utf-8");

response.addHeader("Cache-Control", "no-cache");

%>Hola <b><%=request.getParameter("name")%></b>. ¿Cómo estas?

helloHTML.jsp (Java)

Page 11: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Servicios REST y data XML

Un servicio REST puede retornar XML en vez de retornar texto libre HTML

Esto permite que el servicio REST pueda ser usado por otros como Flex, Java, o .NET

Todos pueden consumir data en formato XML

<?xml version="1.0" encoding="utf-8"?>

<resultado>

<saludo>¡Hola Pepe Pótamo!</saludo>

</resultado>

Page 12: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Saludo AJAX: Servicio REST XML

<%@ Language="VBScript" CodePage=65001 %><%

Response.ContentType = "text/xml;charset=utf-8"

Response.CodePage = 65001

Response.CacheControl = "no-cache“

nombre = Request.QueryString("name")

%><?xml version="1.0" encoding="utf-8"?>

<resultado>

<saludo>¡Hola <%=nombre%>!</saludo>

</resultado>

helloXML.asp (VB)

Page 13: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Saludo AJAX: Servicio REST XML

<%@ page contentType="text/xml" pageEncoding="utf-8" %><%

request.setCharacterEncoding("utf-8");

response.addHeader("Cache-Control", "no-cache");

String nombre = request.getParameter("name");

%><?xml version="1.0" encoding="utf-8"?>

<resultado>

<saludo>¡Hola <%=nombre%>!</saludo>

</resultado>

helloXML.jsp (Java)

Page 14: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Saludo AJAX: HTML con XML

function helloResponse()

{

if (gRequest.readyState == 4) // Only if "complete"

{

if (gRequest.status != 200) // Check "OK" status

{

alert("Download error: "+gRequest.statusText);

return;

}

var xmlDoc = gRequest.responseXML.documentElement;

var xmlNode = xmlDoc.getElementsByTagName("saludo")[0];

var element = document.getElementById("helloReply");

element.innerHTML = xmlNode.firstChild.data;

}

}

Page 15: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Comentarios sobre AJAX

Difícil programar y mantener los programas

Se recomienda usar un “Framework AJAX”

Framework Backbase (www.backbase.com)

Limitado por seguridad del browser (sandbox)

Por ejemplo, no se puede leer o grabar archivos

No permite crear clientes Semi-Conectados

No se puede guardar el estado del programa

Page 16: Introducción a AJAX · 2010. 12. 22. · Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl . Temario Introducción a AJAX

Muchas gracias


Recommended