17
2011
AJAX en tres pasos

En este post comentamos como utilizar ajax para refrescar parte de una web de manera asíncrona.
¿Qué significa esto?
Prácticamente que el equipo cliente establecerá una conexión con el servidor en segundo plano, logrando así recargar parte de nuestra web sin que se tenga que recargar toda la página entera, de este modo se logra una mayor interactividad con el usuario y por supuesto una mayor velocidad pues no tenemos que cargar de nuevo todos los elementos (imágenes, música, flash…).
Como indica el título para conseguir esto necesitaremos seguir estos tres pasos que vamos a describir más abajo.
Para utilizar AJAX (Asynchronous JavaScript And XML) debemos saber que navegador utiliza el cliente, por eso en el primer paso creamos un objeto y probamos si funciona, si nuestro código no funciona significa que el cliente utiliza otro tipo de navegador, en este caso probaremos otro tipo de objeto y comprobamos que funciona, logrando de este modo cerciorarnos de que nuestro código funcionará con los distintos navegadores que pueden tener nuestros usuarios.
Primer paso
Creamos el objeto que nos va a permitir enviar y recibir datos a nuestro servidor de forma asincrona. Para esto es necesario crear el objeto “ajaxObjeto”, ahora iremos probando con el try y catch si nuestro navegador es Internet explorer o cualquier otro (Firefox, Opera, Safarim, etc).
El funcionamiento es sencillo, probamos “ajaxObjeto = new XMLHttpRequest();” y si obtenemos un error probaremos esto “ajaxObjeto = new ActiveXObject(“Msxml2.XMLHTTP”);”. Lo hacemos así porque dependiendo del tipo de navegador que use nuestro cliente usaremos un tipo de objeto u otro.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <script language="javascript" type="text/javascript">; <!-- function ajaxConexion(url){ var ajaxObjeto; // Declaramos la variable try{ // Distinto de Internet Explorer ajaxObjeto = new XMLHttpRequest(); } catch (e){ // Para Internet explorer try{ ajaxObjeto = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxObjeto = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Si no pudo crear el objeto alert("Esta página tiene problemas con su navegador"); return false; } } } if(ajaxObjeto) { ajaxObjeto.onreadystatechange = procesoAcabado; ajaxObjeto.open("GET", url, true); ajaxObjeto.send(""); } } //-->; </script> |
Tanto este script como el siguiente lo podéis incluir en la propia página o en un fichero externo y llamarlo en la cabecera.
Por ejemplo, podéis nombrarlo fichero.js y leerlo desde vuestra página así:
1 | <script src="fichero.js" language="JavaScript"></script> |
Segundo Paso:
Creamos una función que recibirá los datos que son enviados desde nuestro servidor.
En esta función asignaremos a la variable mostrarDatos, el elemento en el que vamos a mostrar los datos, y una vez que se haya completado el envio de datos desde nuestro servidor los mostraremos en el elemento que hemos asignado a “mostrarDatos”, dependiendo de los datos que quieras mostrar necesitaras diferentes elementos, por ejemplo, un elemento campo o un elemento DIV.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function procesoAcabado(){ // buscamos el elemento en el que queremos que se muestren los datos var mostrarDatos = document.getElementById("nombreIdentificador"); // Cuando el proceso a acabado (4) asignamos la respuesta, // a nuestro elemento mostrarDatos. if(ajaxObjeto.readyState == 4){ mostrarDatos.innerHTML = ajaxObjeto.responseText; } else { // si no ha acabado podeis mostrar cualquier mensaje // informativo (espere por favor, cargando datos). mostrarDatos.innerHTML = '...'; } } |
Tercer Paso:
Dentro de nuestra página creamos el form o formulario desde donde vamos a llamar a la función anterior:
Le diremos que pagina queremos cargar poniendo en el “input” el valor de la página que queremos cargar dentro del div que hemos indicado en el paso anterior.
En este caso cargaremos la pagina2.php dentro del elemento “nombreIdentificador” que hemos indicado en la función anterior.
1 2 3 4 5 | <form name='formulario'> <input type='submit' onClick="ajaxConexion(this.value);" name='enviar' value="pagina2.php"/> </form> |
Y con este tercer paso hemos acabado, ahora cuando hagamos click en el elemento “enviar”, llamaremos a la función ajaxConexion() pasándole el valor pagina2.php. Esta función después de conocer que navegador tiene el cliente llamará a la función procesoAcabado() y cuando recibamos la respuesta cargaremos el contenido de la página2.php en el ID que hayamos elegido anteriormente.
Obviamente os falta crear el contenido de vuestra pagina2.php que será el texto que se muestre.
Artículos relacionados
Related Posts
1 Comment + Add Comment
Leave a comment
Entradas recientes
- Expresiones Regulares. Ejemplos
- Operadores en Google | Busquedas personalizadas
- Oracle REGEXP Funciones
- Cómo conectarse por SSH al servidor web
- Programación en Lenguaje ensamblador | Dividir dos números
- Secuencias Oracle.
- Cómo crear 20 subredes | Red tipo B | Ejemplos
- Colores en el diseño de las redes sociales
- Mejora la velocidad de tu web
- Problemas de conexión con SMF
- Diversidad funcional | Interacción de las personas con los ordenadores
- Tecnicas de Black hat SEO
- Tutorial posicionamiento Web SEO II – Diseño y SEO
- Programar en lenguaje ensamblador | Ejemplo Práctico
- Interrupciones en la Arquitectura CISC | Ejemplo RSI
- Oracle RAC | Resolver Problemas de Permisos
- Traducir lenguaje Ensamblador a lenguaje Máquina | CISC
- Codificar en lenguaje ensamblador CISC | Ejemplos Matrices
- Memorias caché y algoritmos de reemplazo
- Clasificación de Sistemas de memoria
- Indexar contenido en Google
- Programación en Lenguaje ensamblador | Registro de estado
- Cómo eliminar el contenido duplicado de tu web
- Resolver error ora-01008 not all variables bound | frm-41380
- CURSOR DINÁMICO FORMS 10G
- PRAGMA ORACLE
- Factores humanos y diseño en informática | Resumen
- Conceptos básicos de Interación Persona Ordenador | Apuntes
- Suma de polinomios con código ensamblador x86-64
- Desarrollar contenido SEO
- Eliminar campos del perfil administrador
- ORA-02291: integrity constraint | Oracle
- Función JavaScript sin conocer el número de parámetros
- Error 500 | Internal Server Error
- Recopilación de Redes Sociales
- Realidad aumentada Google Project Glass
- Bloquear IPs por .htaccess
- Ensamblador | Cambiar el orden de un Array
- Ensamblador | Algoritmo de la burbuja
- Programación en ensamblador | Arquitectura CISC
- Alternar colores en tablas con PHP y CSS
- Permisos en WordPress
- Programación en ensamblador (Resumen III) – Instrucciones
- Programación en ensamblador (Resumen II)
- Programación en ensamblador (Resumen I)
- Dibujar rutas en Google Maps | v3
- Paginar sin plugin en WordPress
- Tutorial Google Maps II ** Insertar marcas
- Tutorial Google Maps I
- Instalar Java en Ubuntu
- Enviar un email con PHP
- Recuperar Pc Packard Bell
- Claúsula RETURNING
- Paquete DBMS_UTILITY
- Sentencia CONTINUE | SQL
- GPS con Android | Mostrar tu posición
- Tutorial | Primeros pasos con IBM DB2
- Instrucción SAVEPOINT
- Diferencias entre the_excerpt y the_content | Resumir entradas
- Redireccionar Web | Métodos de redirección
- Clase Robot
- Formulario transparente en java | Robot
- Google Zeitgeist | Lo más buscado 2011
- Compartir contenidos Facebook – Tweetter | Blogger
- Plugin imprescindibles en wordpress (10 mejores)
- Resolver problemas de mantenimiento con WordPress
- Widget Hazte Fan para tu blog
- Introducción a la Minería de Datos
- Integrar tu Web en Facebook
- Debugar con ORACLE Forms Builder
- Test para Facebook | Desarrollo de aplicaciones
- Cursor dinámico en ORACLE FORMS
- Publicar en el muro con JavaScript SDK
- Sueldos en Informática
- Tutorial – Cómo crear aplicaciones para Facebook
- Mensajero de Windows con Java
- Tutorial posicionamiento Web SEO I
- AJAX en tres pasos
- Publicar con tu aplicación Facebook
- Aplicacion Facebook en Español
Recientes
- admin: Ok, prueba. No obstante, si no lo consigues muestrame o envíame el código y te echo una mano. Suerte!
- Anselmo: Gracias por la respuesta, hoy voy a intentar modificar el código. De hecho tengo una lista con muchos links,...
- admin: Hola, Lo que quieres hacer no parece complicado, prueba esto: Modifica la función initialize para que le...
- Anselmo: Gracias por los tutoriales, son muy buenos! Tengo una duda, espero me puedas orientar. En el código, veo que...
- Navit: Buen artículo, tengo que probar dos o tres cosas que has puesto. Gracias
Información Bitacoras.com…
Valora en Bitacoras.com: En este post comentamos como utilizar ajax para refrescar parte de una web de manera asíncrona. ¿Qué significa esto? Prácticamente que el equipo cliente establecerá una conexión con el servidor en segundo plano, logrand……