Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Entendiendo AJAX
Introducción a AJAX
Fue definido por primera vez por J.J.Garret en el año 2005 en su artículo “Ajax: A new
approach to Web Applications”
Ahí se definía una nuevo tipo de aplicaciones que pretendían parecerse a las aplicaciones de
escritorio usadas habitualmente por los usuarios pero a través de la WEB.
“Es una técnica de desarrollo web para crear aplicaciones interactivas. Se ejecuta en el cliente
y mantiene una comunicación ASINCRONA con el servidor. Mejora mucho sus tiempos de
respuestas y esperas habituales del usuario”
Tecnologías
Las tecnologías de las que se hablan en las definiciones, son las que a continuación
presentamos, con sus relaciones entre si y su utilidad dentro de AJAX
XHTML y CSS:
Estos elementos se utilizan para la presentación de la información dentro de la página
Web final.
Podemos usar cualquiera de las propiedades de ellos con cualquier libertad.
DOM
Utilizamos DOM para la visualización dinámica de elementos en las páginas Web y
para interactuar con la información presentada o a presentar.
Todos los métodos y atributos vistos en el capítulo anterior son válidos.
XML y JSON
Son utilizados para definir los datos a intercambiar y la manipulación de ellos.
Han sido elegidos por la baja carga en el servidor y cliente respecto a otras
tecnologías.
XMLHttpRequest
Es el objeto encargado para el intercambio de datos Asíncrona o Síncronamente.
Normalmente este objeto siempre se utiliza en comunicación asíncrona.
JAVASCRIPT
Es el elemento que realiza el nexo de unión entre todas las anteriores tecnologías.
En Ajax se utiliza junto con los objetos DOM de HTML como son (navegador,
document, element, etc)
2
Introducción a AJAX
Entendiendo Ajax
Una de las características de AJAX, es que no requiere pluggins, es decir, no requiere
capacidades específicas por parte del Navegador.
Realizar aplicaciones en AJAX complejas y que luego puedan ser usadas en cualquier
navegador, va a depender de las características y versión del propio navegador.
A continuación se detallan una lista de los navegadores més usuales que soportan AJAX y no
soportan Ajax
SOPORTAN AJAX
Mozilla
Mozilla Firefox
Netscape 7.1 y superiores
IExplorer 5 y superiores
Opera 8 y superiores
NO SOPORTAN AJAX
Lynx
IExplorer para MACINTOSH
IExplorer 4 o anteriores
Opera 7 o inferiores
Dentro de todo cliente-servidor siempre existen 2 partes bien diferenciadas, que son: el Cliente
y el Servidor.
Para que los elementos clientes y servidores interactúen, es necesario que se disponga de una
serie de servicios que permitan dicha comunicación, por ejemplo, en el cliente dispondremos
de un navegador Web, y en el servidor un Servidor Web.
3
Introducción a AJAX
Este tipo de aplicaciones, cuando se realizan muchas peticiones, el cliente tiene mucho tiempo
de espera y genera mal sensación en los usuarios finales, incluso puede desesperarse.
Ajax permite mejorar las comunicaciones de las páginas Web, permitiendo una
interopetarividad mucho mejor y más activa entre el usuario y la obtención de datos de la
aplicación o página WEB.
Mediante Ajax se evita que se haga una recarga continua y constante de páginas y datos (
forma síncrona ) y realiza una carga de forma ASINCRONA.
Los datos transmitidos entre el cliente y el servidor, son datos “simples” y elaborados en XML
La ingeniaría de Ajax suele usarse actualmente como sustituto de otros elementos como son
Flash y Applets.
4
Introducción a AJAX
YAHOO MAIL
GOOGLE MAPS
GOOGLE DOCS
Mi primer Programa
Una primera aproximación de cómo sería un código completo realzado en AJAX; el código lo
dividiremos en secciones
Debemos tener en cuenta que la mayor parte de los programas que utilizan AJAX van a utilizar
las secciones que a continuación vamos a poner, aunque puedan existir casos que no sea así y
falten alguna/s seccion/es.
1. Código HTML
2. Objeto XMLHttpRequest
3. Código JavaScript
4. Elementos adicionales como CSS, JSON, etc.
<html>
<head>
<title>Mi Primer AJAX</title>
5
Introducción a AJAX
:
function obtenerDatos(fuenteDatos, divID)
{
:
}
</script>
</head>
<body>
<H1>Mi Primer Programa en AJAX</H1>
<form>
<input type = "button" value = "Obtener Datos" onclick
="obtenerDatos('ejemplo1_datos.txt','Destino')">
</form>
<div id="destino" style="background-color:#aaddff;">
<p>Pulsa el botón y veras lo que sale aqui</p> </div>
</body>
</html>
CODIGO JavaScript
El código JavaScrip puede ser usado en cualquier parte del programa, aunque siempre va a
existir una parte específica de este código para definir los elementos necesarios para la
comunicación con el servidor en Ajax.
Usado por ejemplo, funciones para evaluar datos sin salir del cliente (formularios), funciones
para hacer operaciones matemáticas, carga de modelos de Hojas de Estilos en Cascada, etc.
También aparecen partes de Javascript para incorporar ficheros con más código javascript (*.js)
o para incorporar las Hojas de Estilo en Cascada (CSS).
Mi primer Programa
:
:
<script language = "javascript">
var XMLHttpRequestObject = false;
:
// Definición de variables u operaciones generales
:
function obtenerDatos(fuenteDatos, divID)
{
// Código de la función a implementar
}
:
// Más código de JAvascript
:
</script>
6
Introducción a AJAX
Debemos de tener en cuanta que existen diferentes versiones de creación de este objeto
dependiendo del navegador en el que nos encontremos. Para gestionar el objeto se disponen
de unos métodos y propiedades que detallaremos en el siguiente capítulo que dan
funcionalidad completa al objeto
Mi primer Programa
:
:
:
<script language = "javascript">
var XMLHttpRequestObject = false;
:
var req = new XMLHttpRequest();
if(window.XMLHttpRequest && !(window.ActiveXObject))
{
try { ……………..
} catch(e) { ………….. }
if(window.ActiveXObject) {
</script>
:
Pueden existir una o más funciones para la gestión y manipulación de los datos obtenidos en la
comunicación con el servidor. Siempre van a tener en común la utilización del objeto
previamente creado, sino tenemos este objeto, la función no se podrá utilizar para hacer ningún
tipo de tarea relacionada con la comunicación.
La manipulación de los datos puede ser muy simple cuando se trate de texto plano o todo lo
complicado que se quiera cuando trate con código XML, pues tenemos que interpretar sus
datos y convertirlos
Mi primer Programa
:
:
<script language = "javascript">
var XMLHttpRequestObject = false;
:
// Definición de variables u operaciones generales
:
function obtenerDatos(fuenteDatos, divID)
{
// Código de la función a implementar
}
:
// Más código de JAvascript
:
</script>
Ventajas y Desventajas
7
Introducción a AJAX
VENTAJAS
1. La principal ventaja que tiene Ajax es la posibilidad de realizar aplicaciones e interfaces
de usuario similares a los que ahora mismo disponemos en cualquier aplicación que
instalemos en nuestro PC.
2. Ajax no necesita navegadores con plugins determinados o preinstalados; sólo es
necesario que el navegador soporte la ingeniería Ajax
3. La utilización de Ajax reduce el tráfico de Red.
4. El servidor envía datos no contenido, por lo que en una aplicación AJAX el servidor
sólo envía los datos y desde el código que se ejecuta en el navegador se presentan
modificando el contenido de la página.
DESVENTAJAS
1. La principal desventaja de la utilización de Ajax es el conocimiento de las tecnologías
involucradas en ella, como son Javascript, CSS, XML, etc
2. La velocidad de proceso de la aplicación en el lado cliente puede ser lenta debido al
elevado código Javascript usado para poder soportar AJAX.
3. La primera comunicación del cliente con el servidor, implica un mayor transvase de
información.
4. Como norma general, las aplicaciones AJAX requieren código complejo del lado
cliente, pues se debe de tratar la mayoría de la funcionalidad de la aplicación y sino se
hace un buen diseño, su mantenimiento puede ser una ardua tarea.
FRAMEWORKS y Librerías
Existen diferentes frameworks en el mercado, cada uno de ellos tiene sus ventajas e
inconvenientes.
FRAMEWORK
XAJAX ( http://xajax.sourceforge.net )
FiveFox
4D AJAX ( http//4dhispano.com )
Qooxdoo
Bindows
My_BIC
Google toolkit AJAX ( GWT)
Ajaxtk ( IBM )
Estas librerías se anexan a nuestras páginas web como si ficheros externos dentro del lenguaje
javascript
8
Introducción a AJAX
<script type="text/javascript"
src="http://www......./fichero.jsp"></script>
LIBRERIAS
Moofx ( http://moofx.mad4milk.net/ )
Prototype ( http://prototype.conio.net/ )
overLIB (http://www.bosrup.com/web/overlib/?Download )
Mochikit (http://www.mochikit.com/ )
DHTMLgoodies (http://www.dhtmlgoodies.com/ )
Dojo (http://www.dojotoolkit.org/ )