SlideShare una empresa de Scribd logo
Introducción a AJAX
Eduardo Ostertag Jenkins, Ph.D.
OBCOM INGENIERIA S.A. (Chile)
Eduardo.Ostertag@obcom.cl
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)
Arquitectura típica AJAX
Browser

AJAX

Servidor Web

Servicios REST

Lógica Negocio (EJB, COM+)

Modelo de Datos (Tablas)
¿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
¿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
Saludo AJAX: Interfaz Gráfica
Saludo AJAX: Página HTML (1)
helloHTML.html
<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>
Saludo AJAX: Página HTML (2)
helloHTML.html
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();
}
}
Saludo AJAX: Página HTML (3)
helloHTML.html
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;
}
}
Saludo AJAX: Servicio REST
helloHTML.asp (VB)
<%@ 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.jsp (Java)
<%@ 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?
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>
Saludo AJAX: Servicio REST XML
helloXML.asp (VB)
<%@ 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>
Saludo AJAX: Servicio REST XML
helloXML.jsp (Java)
<%@ 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>
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;
}
}
Comentarios sobre AJAX


Difícil programar y mantener los programas



Se recomienda usar un “Framework AJAX”




Limitado por seguridad del browser (sandbox)




Framework Backbase (www.backbase.com)

Por ejemplo, no se puede leer o grabar archivos

No permite crear clientes Semi-Conectados


No se puede guardar el estado del programa
Muchas gracias

Más contenido relacionado

PPT
Presentacion ajax
PPTX
Presentacion ajax
PPTX
Qué es y para qué sirve ajax?
PDF
Javascript basico
PPT
12. Administracion Del Estado
PPTX
Capitulo 4.7 prog iii
Presentacion ajax
Presentacion ajax
Qué es y para qué sirve ajax?
Javascript basico
12. Administracion Del Estado
Capitulo 4.7 prog iii

La actualidad más candente (12)

PPT
13. Configuracion De Aplicaciones Web Asp.Net
PPTX
9 Programación Web con .NET y C#
PPTX
PPTX
Ajax
PPTX
Adminredes ajax ver2
ODP
Objetosimpliciosjsp
PDF
ASP.NET MVC - AJAX
PPT
Servletacceso bd
PDF
ASP.NET MVC - areas, manejo de estado
PPTX
Ajax ya temas 4-6 Equipo 2
13. Configuracion De Aplicaciones Web Asp.Net
9 Programación Web con .NET y C#
Ajax
Adminredes ajax ver2
Objetosimpliciosjsp
ASP.NET MVC - AJAX
Servletacceso bd
ASP.NET MVC - areas, manejo de estado
Ajax ya temas 4-6 Equipo 2
Publicidad

Similar a Introduction AJAX (20)

PPT
Conceptos Introductorios Del Web 2
PPT
Introduccion Ajax V1.0
PPT
Conceptos acerca de Ajax
PPTX
introduccion a Ajax
PPT
Ajax
PPT
Inicios Ajax
PPT
01 Ext Js Introduccion
ODP
Ajax
PPTX
Que es AJAX
PPT
PPT
Ajax Huancayo
PPTX
S4-DAW-2022S1.pptx
PPTX
PDF
PDF
Introducción a los lenguajes de programación de la plataforma Web 2.0: Ajax
PPT
AJAX EN CURSO PHP
PDF
Servicios Rest con Jersey
PDF
Pdf
Conceptos Introductorios Del Web 2
Introduccion Ajax V1.0
Conceptos acerca de Ajax
introduccion a Ajax
Ajax
Inicios Ajax
01 Ext Js Introduccion
Ajax
Que es AJAX
Ajax Huancayo
S4-DAW-2022S1.pptx
Introducción a los lenguajes de programación de la plataforma Web 2.0: Ajax
AJAX EN CURSO PHP
Servicios Rest con Jersey
Pdf
Publicidad

Más de Aldo Ulloa Carrasco (19)

PPTX
Sql wizard - OBCOM Ingenieria
PDF
Supchilesupbrazil 131022091735-phpapp01
PDF
Steve Jobs, "Stay Foolish, Stay Hungry", Stanford.-
PPT
Ayrton Senna
PDF
Quotes from Sir Ken Robinson
PPTX
Bill Gates , Part 1.-
PPT
Inside Steve Jobs Brain ,
PDF
Java 1.4 to java 6
PDF
10 Business Lessons
PPT
Ken Robinson, Changing Education Paradigms
PPT
Sir Ken Robinson, The Element
PDF
Arquitecturas Distribuidas. (Edo Ostertag)
PPTX
03 Inspirational quotes
PDF
Education, Finland
PPT
02 Steve jobs
PDF
01 Steve Jobs, Lessons
PPT
01 Sir Ken Robinson, Education
PDF
Indices2011 herramienta para una postulacion informada
PPS
Buenamigoghostmusic
Sql wizard - OBCOM Ingenieria
Supchilesupbrazil 131022091735-phpapp01
Steve Jobs, "Stay Foolish, Stay Hungry", Stanford.-
Ayrton Senna
Quotes from Sir Ken Robinson
Bill Gates , Part 1.-
Inside Steve Jobs Brain ,
Java 1.4 to java 6
10 Business Lessons
Ken Robinson, Changing Education Paradigms
Sir Ken Robinson, The Element
Arquitecturas Distribuidas. (Edo Ostertag)
03 Inspirational quotes
Education, Finland
02 Steve jobs
01 Steve Jobs, Lessons
01 Sir Ken Robinson, Education
Indices2011 herramienta para una postulacion informada
Buenamigoghostmusic

Último (20)

PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
ciencias-1.pdf libro cuarto basico niños
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
biología es un libro sobre casi todo el tema de biología
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
TOMO II - LITERATURA.pd plusenmas ultras
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Doctrina 1 Soteriologuia y sus diferente
Escuelas Desarmando una mirada subjetiva a la educación
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
Tomo 1 de biologia gratis ultra plusenmas
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
ciencias-1.pdf libro cuarto basico niños
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
DI, TEA, TDAH.pdf guía se secuencias didacticas
biología es un libro sobre casi todo el tema de biología
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
TOMO II - LITERATURA.pd plusenmas ultras

Introduction AJAX

  • 1. Introducción a AJAX Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile) Eduardo.Ostertag@obcom.cl
  • 2. 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)
  • 3. Arquitectura típica AJAX Browser AJAX Servidor Web Servicios REST Lógica Negocio (EJB, COM+) Modelo de Datos (Tablas)
  • 4. ¿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
  • 5. ¿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
  • 7. Saludo AJAX: Página HTML (1) helloHTML.html <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>
  • 8. Saludo AJAX: Página HTML (2) helloHTML.html 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(); } }
  • 9. Saludo AJAX: Página HTML (3) helloHTML.html 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; } }
  • 10. Saludo AJAX: Servicio REST helloHTML.asp (VB) <%@ 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.jsp (Java) <%@ 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?
  • 11. 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>
  • 12. Saludo AJAX: Servicio REST XML helloXML.asp (VB) <%@ 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>
  • 13. Saludo AJAX: Servicio REST XML helloXML.jsp (Java) <%@ 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>
  • 14. 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; } }
  • 15. Comentarios sobre AJAX  Difícil programar y mantener los programas  Se recomienda usar un “Framework AJAX”   Limitado por seguridad del browser (sandbox)   Framework Backbase (www.backbase.com) Por ejemplo, no se puede leer o grabar archivos No permite crear clientes Semi-Conectados  No se puede guardar el estado del programa