Ranasofía Sabiduría Anfibia

23jul/101

Realizar AJAX con jQuery

Hay como mínimo 5 formas de realizar llamadas AJAX con la librería de jQuery. Para principiantes, como de costumbre, las diferencias entre una y otra pueden ser un poco confusas. En este tutorial las vamos a organizar y hacer una comparación. Adicionalmente, vamos a ver cómo examinar estas llamadas AJAX con Firebug también.

AJAX Caché

Cuando GMail refresca el contenido sin redirección, una llamada AJAX es realizada detrás de escenas. El contenido llamado puede ser estático (devuelve exactamente lo mismo todo el tiempo, como una formulario de contacto o una imágen) o dinámico (pide a la misma URL obtener diferentes respuestas, como la bandeja de entrada de GMail donde los e-mails son mostrados en cualquier momento).

Para contenido estático, podemos esperar que el contenido sea cacheado. Pero para contenido dinámico, el cúal puede cambiar en unos segundos, cachear el AJAX se convierte en un problema. Hay que notar que Internet Explorer siempre cachea llamadas AJAX, mientras que otros navegadores se comportan  diferentemente. Entonces sería mejor decirle al navegador de manera explícita si AJAX debe o no ser cacheada. Con jQuery, podemos lograr esto simplemente tipeando:

	$.ajaxSetup ({
		cache: false
	});

1. load(): cargar HTML desde una URL remota e injectarlo en el DOM.

El uso más común de AJAX es cargar HTML desde una locación remota e injectarlo dentro del DOM. Con la función load() de jQuery, esta tarea es una pavada. Mirá esta demostración y revisaremos algunos usos uno por uno.

Configuración mínima

Click en el primer botón llamado "load()". Un poco de HTML es injectado en la página, exactamente de lo que estabamos hablando. Vamos a ver qué está pasando detrás de escenas.
Abajo está el código para el efecto:

	$.ajaxSetup ({
		cache: false
	});
	var ajax_load = "<img src='img/load.gif' alt='loading...' />";

//	load() functions
	var loadUrl = "ajax/load.php";
	$("#load_basic").click(function(){
		$("#result").html(ajax_load).load(loadUrl);
	});
  1. $.ajaxSetup obliga al navegador a NO hacer caché de llamadas AJAX.
  2. Después que el botón es clickeado, toma un poquito de tiempo antes que el nuevo HTML sea cargado. Durante el tiempo de carga, es mejor mostrar una animación para proporcionar al usuario cierta reacción que asegure que la página está cargando. La variable "ajax_load" contiene el HTML de la carga.
  3. "ajax/load.php" es la URL desde la cúal el HTML es agarrado.
  4. Cuando el botón es clickeado, hace una llamada AJAX a la URL, recibiendo la respuesta HTML, e injectándola en el DOM. La sintáxis es simplemente $("#DOM").load(url). Más sencillo, imposible.

Ahora exploremos más detalles de la petición con Firebug:

  1. Abrí Firebug.
  2. Cambiá la pestaña "Net" o "Red". Activala si está desactivada. Acá es donde todas las peticiones HTTP en el navegador son mostradas.
  3. Cambia a la pestaña "XHR" debajo de "Net" o "Red". El término XHR es la petición generada de la llamada AJAX. Todas las peticiones son mostradas aquí.
  4. Clickeá en el botón "load()" y deberás ver lo siguiente.

La petición es mostrada, ok? Clickeá en el simbolito "más" (+) a la izquierda de la llamada, más información es mostrada.

Clickeá en la pestaña "Params" o "Parámetros". Aquí están todos los parámetros pasados a través del método GET. ¿Ves la gran cantidad de números pasados debajo de una llave "_"? Así es como jQuery se asegura con la petición no sea cacheada. Cada petición tiene un diferente parámetro "_", entonces los navegadores consideran a cada uno como único.

Clickeá en la pestañan "Response" o "Respuesta". Acá esta el HTML que respondió de la URL remota.

Cargar parte del archivo remoto

Clickeá en el botón "load() #DOM". Notaremos que sólo una parte del link es cargado esta vez. Esto es hecho con el siguiente código:

	$("#load_dom").click(function(){
		$("#result")
			.html(ajax_load)
			.load(loadUrl + " #picture");
	});

Con load(url + "#DOM"), sólo el contenido dentro de #DOM es injectado en la página.

Pasar parámetros a través del método GET

Clickeá en el botón "load() GET" y abrí Firebug.

	$("#load_get").click(function(){
		$("#result")
			.html(ajax_load)
			.load(loadUrl, "language=php&version=5");
	});

Pasando una cadena como el segundo parámetro de load(), estos parámetros son pasados a la URL remota en el método GET. En Firebug, estos parametros son mostrados como pasos:

Pasar parámetros a través del método POST

Clickeá en el botón "load() POST" y abrí Firebug.

	$("#load_post").click(function(){
		$("#result")
			.html(ajax_load)
			.load(loadUrl, {language: "php", version: 5});
	});

Si los parámetros son pasados como objetos (en lugar de cadenas), son pasados a la remota URL en el método POST.

Saludos! :mrgreen:

La mejor manera de agradecer es comentando y pasando el chivo de la página! :twisted:

10jul/102

Agregar sitemap a Google!

Este es el tuto de como ser indexado por Google! Que es más fácil de lo que parece.

1 - Bueno, primero necesitamos cuenta en Gmail (registrate haciendo click acá:http://mail.google.com/mail/signup/).
2 - Una vez que nos registramos, vamos a la seccion de WebMasters de Google (accedé haciendo click acá: http://www.google.com/webmasters/).
3 - Ahora que estamos en la sección de WebMasters de Google, hacemos click en el enlace Herramientas para webmasters (incluido Sitemaps).
4 - Nos va a pedir que accedamos, SIEMPRE Y CUANDO no hayamos accedido anteriormente; si no accediste, accedé a tu cuenta Gmail que creamos en el punto 1.
5 - Nos vamos a encontrar con una linda página, busquemos un botón que diga Añadir un sitio... y hagámosle click.
6 - Se nos abrirá un pequeño menú con un campo de texto, en el cual introduciremos la URL de nuestra web.
7 - Una vez agregado el sitio, nos pedirá que ó agreguemos un METATAG a nuestro código fuente (¿Para qué?; bueno, para verificar que nosotros somos el dueño de nuestro sitio) ó que subamos un archivo HTML a nuestra raíz. Cuando esté hecho eso, dale a Verificar.
8 - Cuando verificaste y esté todo OK, podrás acceder al panel, desde la página principal, haz click en la URL de tu web.
9 - Al costado verás un menú con el nombre Panel. Accedé a Información del sitio>Sitemaps.
10 - Hacemos click en el botón Agregar un sitemap, y se nos abrirá otro mini-menú con otro campo de texto, en el cúal, lo único que tenemos que agregar es el archivo XML o algún archivo que arme el Sitemap y darle a Enviar Sitemap.
11 - Ahora solo nos queda esperar a que Google indexe algunas de las páginas de nuestra web. Para un mejor indexamiento recomiendo configurar el robots.txt, que nos servirá para que no aparezcan páginas como el panel de administración de nuestra web.

Saludos! Espero que les haya servido! :mrgreen:

Etiquetado con: , , , 2 Comentarios