Mi primer ejemplo con AJAX

Siguiendo con la publicación del tutorial sobre AJAX, mostraremos ahora un pequeño ejemplo introductorio. Mostraremos el código y luego explicaremos el código.

Código

ejemplo1.html

  <html>
<head>
<title>Ejemplo1</title>
<script language = "javascript">
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
function pedirDatos(fuenteDatos, divID){
if(XMLHttpRequestObject) {
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", fuenteDatos);
XMLHttpRequestObject.onreadystatechange = function(){
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}
</script>
</head>
<body>
<H1>Mostrando datos con AJAX</H1>
<form>
<input type = "button" value = "Mostrar mensaje" onclick = "pedirDatos('datos.txt','targetDiv')">
</form>
<div id="targetDiv" style="background-color:#99FF66;">
<p>Aqu&iacute; aparecer&aacute; texto</p>
</div>
</body>
</html>

A continuación escribiremos en un archivo de texto la siguiente línea:

datos.txt

Este texto aparecio usando AJAX y sin un refresh a la pagina.

Explicación

En primer lugar creamos el objeto XMLHttpRequestObject para la petición de datos. Este objeto será creado dependiendo del navegador web, la primera parte del if es para la mayoría de navegadores y la parte del if else es para Internet Explorer.

Luego está la creación de una función pedirDatos que tiene como parametros fuenteDatos y divID. Está función, como su mismo nombre lo indica, será la encargada de hacer una petición de datos, a través del parámetro fuenteDatos al servidor. Y el resultado de la petición será mostrada en la variable divID , la cual es una capa de estilos que se mostrará en el html.

Como se aprecia la mayor parte del código interesante se centra en el javascript. Así que empezaremos el tutorial con un rápido repaso de este lenguaje. Hasta el próximo artículo.

Dudas, preguntas, sugerencias por favor dejar sus comentarios.

Puedes ver el ejemplo en la sección ejemplos

Comentarios Comentarios formato RSS

  1. avatar Aldo 2010-02-25 23:02:13 21 Si sirve, a mi funciono de lujo, ademas es muy simple el ejemplo.
  2. avatar augusto 2010-02-25 17:49:43 20 soy nuevo en AJAX, de hecho es mi primer ejemplo, pero no se en que ruta debe de ir el archiv, me pueden orientar un poco mas, por fa
  3. avatar DFJB 2010-01-04 10:37:18 19 Yo sé algo de AJAX, cuando aparece el error en Javascript: Acceso denegado, es porque la página HTML, no se está ejecutando desde un servidor local como un Localhost o servidor Web en Internet.

    Y sobre XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200
    bueno readyState es una propiedad del objeto XmlHttpRequest, es la encargada de indicar que proceso se encuentra nuestra solicitud al servidor los posibles readyStates son:
    * 0 No inicializado (el método open no a sido llamado).
    * 1 Cargando (se llamó al método open).
    * 2 Cargado (se llamó al método send y ya tenemos la cabecera de la petición HTTP y el status).
    * 3 Interactivo (la propiedad responseText tiene datos parciales).
    * 4 Completado (la propiedad responseText tiene todos los datos pedidos al servidor).

    Y el status es una propiedad del XmlHttpRequest que inidica en que estado se encuentra la solicitud
    por ejemplo cuando no se encuentra una página el navegador nos dice Error 404 Página no encontrada, pero cuando se encuentra la página, internamente aparece el mensaje 200 página encontrada y bueno hay más aquí: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

    Entonces en este código fuente se está intentando validar las repuestas de esta forma; claro es una manera.
    Sin duda a este ejemplo se le puede mejorar pero ahí esta la idea inicial...

    Y bueno espero poder haber ayudado a alguien...
  4. avatar Angelitodiaz 2009-12-26 08:23:27 18 Hola una pregunta. Estoy probando en Internet Explorer 8 y nome funciona el ajax, simplemente el div (contenedor) no muestra los datos. Alguna slucion. En Firefox y Chrome va de lujo....
  5. avatar victor 2009-12-19 09:00:34 17 Yo estoy trabajando en Debian, con el IceWeasel(mismo FireFox) y pues corrio bien, yo reemplace el archivo .txt por un .php y corrio normal; tambien probe en IE 7 y pues cargo bien. Gracias por el aporte.
  6. avatar israel 2009-12-03 13:18:47 16 Tu ejemplo funciona correctamente en IE6 hacia abajo pero del IE7 y IE8 marca un error por seguridad que es el "acceso denegado", no se como correguirlo espero me puedas ayudar gracias de antemano
  7. avatar luz 2009-11-25 17:35:07 15 donde debo almacenar el archivo datos.txt???? pues si lo hago correr el codigo asi como esta, no me muestra texto
  8. avatar julio 2009-08-25 08:15:58 14 buenisino, me
  9. avatar Manuel 2009-07-15 14:33:41 13 hola que onda con lo del ejemplo de ajax, necesito saber como llenar un campo de texto automaticamente, no se si pudieras orientarme, no se nada de ajax
  10. avatar diego 2009-07-08 00:35:12 12 bueno simplemente no sirve, muchas kejas

Dejar un comentario