Diferencia entre revisiones de «Usuario:Juanda/jQuery/Ajax»
De WikiEducator
(→Cachear AJAX) |
|||
(10 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 17: | Línea 17: | ||
//Objeto JSON: | //Objeto JSON: | ||
{ "nombre":"Pepe" , "apellido":"Pérez" } | { "nombre":"Pepe" , "apellido":"Pérez" } | ||
− | + | </source> | |
+ | </div> | ||
+ | <div class="slide"> | ||
+ | <source lang="javascript"> | ||
//Array JSON | //Array JSON | ||
{ | { | ||
Línea 35: | Línea 38: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | |||
===¿Qué es AJAX?=== | ===¿Qué es AJAX?=== | ||
*AJAX quiere decir Asynchronous JavaScript and XML. | *AJAX quiere decir Asynchronous JavaScript and XML. | ||
Línea 54: | Línea 58: | ||
*Será útil usar caché solamente con contenidos estáticos. | *Será útil usar caché solamente con contenidos estáticos. | ||
*Es aconsejable indicarlo porque el comportamiento por defecto puede variar en función del navegador. | *Es aconsejable indicarlo porque el comportamiento por defecto puede variar en función del navegador. | ||
+ | *La caché solo funciona mediante GET. | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | |||
===Método load=== | ===Método load=== | ||
− | * Es el método más sencillo. | + | * Es el método más sencillo. Lo usaremos para cargar cierto contenido por AJAX al DOM de la página actual. |
+ | <source lang="javascript"> | ||
+ | $(selector).load(URL,data,callback); | ||
+ | </source> | ||
+ | *Se puede especificar un selector jQuery a la URL: | ||
+ | <source lang="javascript"> | ||
+ | $("#div1").load("demo_test.txt #p1"); | ||
+ | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ====Ejemplo de uso==== | ||
+ | *Petición de contenido vía ajax al pulsar un enlace: | ||
<source lang="html4strict"> | <source lang="html4strict"> | ||
<html> | <html> | ||
Línea 83: | Línea 100: | ||
</source> | </source> | ||
</div> | </div> | ||
+ | <div class="slide"> | ||
+ | ====Seleccionar datos en petición AJAX==== | ||
+ | *Podemos añadir un selector jQuery a nuestra URL de petición AJAX: | ||
+ | <source lang="javascript"> | ||
+ | $("#div1").load("mipagina.html #p1"); | ||
+ | </source> | ||
+ | * En este caso obtendremos del fichero mipagina.html el elemento identificado con id="p1". | ||
+ | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Paso de parámetros==== | ====Paso de parámetros==== | ||
Línea 127: | Línea 153: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | $(selector).load(URL,data,'''callback'''); | ||
+ | *El parámetro opcional de callback especifica la función de callback a ejecutar cuando el método load() se haya completado. Puede tener varios parámetros: | ||
+ | :responseTxt - contiene el resultado de la llamada si ha sido un éxito | ||
+ | :statusTXT - contiene el estado de la llamada | ||
+ | :xhr - contiene el objeto XMLHttpRequest | ||
+ | *Ejemplo de uso: | ||
+ | <source lang="javascript"> | ||
+ | $("button").click(function(){ | ||
+ | $("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){ | ||
+ | if(statusTxt=="success") | ||
+ | alert("External content loaded successfully!"); | ||
+ | if(statusTxt=="error") | ||
+ | alert("Error: "+xhr.status+": "+xhr.statusText); | ||
+ | }); | ||
+ | }); | ||
+ | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | |||
===Otros métodos=== | ===Otros métodos=== | ||
*$.getJSON(): Obtiene un fichero JSON de un sitio remoto | *$.getJSON(): Obtiene un fichero JSON de un sitio remoto | ||
Línea 132: | Línea 177: | ||
*$.get(): hace peticiones ajax vía GET | *$.get(): hace peticiones ajax vía GET | ||
*$.post(): hace peticiones ajax vía POST | *$.post(): hace peticiones ajax vía POST | ||
− | *$.ajax(): De más bajo nivel. Será útil para controlar errores en las peticiones AJAX. | + | *$.ajax(): De más bajo nivel. Será útil para controlar errores en las peticiones AJAX o alguna función específica de AJAX (por ejemplo la cache). |
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
− | |||
− | |||
+ | <div class="slide"> | ||
===Ajax y Firebug=== | ===Ajax y Firebug=== | ||
*Podemos hacer un seguimiento de las peticiones Ajax desde la pestaña de Red de Firebug, opción XHR (XML HTTP REQUEST): | *Podemos hacer un seguimiento de las peticiones Ajax desde la pestaña de Red de Firebug, opción XHR (XML HTTP REQUEST): | ||
[[Archivo:firebug_load_1.png]] | [[Archivo:firebug_load_1.png]] | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
*Si pulsamos en el recuadro del + a la izquierda, podremos ver los parámetros que se envían en la petición AJAX. <br/>En esta petición no hay ningún parámetro. El único que hay es un número aleatorio generado para forzar que la petición no se sirva de la caché. | *Si pulsamos en el recuadro del + a la izquierda, podremos ver los parámetros que se envían en la petición AJAX. <br/>En esta petición no hay ningún parámetro. El único que hay es un número aleatorio generado para forzar que la petición no se sirva de la caché. | ||
[[Archivo:firebug_load_2.png]] | [[Archivo:firebug_load_2.png]] | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
*En la pestaña de respuesta (response) encontramos lo que devuelve la petición AJAX: | *En la pestaña de respuesta (response) encontramos lo que devuelve la petición AJAX: | ||
[[Archivo:firebug_load_3.png]] | [[Archivo:firebug_load_3.png]] | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
*En este caso enviamos más de un parámetro vía GET. Para pasar más de un parámetro: | *En este caso enviamos más de un parámetro vía GET. Para pasar más de un parámetro: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
Línea 156: | Línea 206: | ||
</source> | </source> | ||
[[Archivo:firebug_load_4.png]] | [[Archivo:firebug_load_4.png]] | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
*Si pasamos los parámetros como un objeto en vez de como una cadena, se enviarán vía POST: | *Si pasamos los parámetros como un objeto en vez de como una cadena, se enviarán vía POST: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
Línea 165: | Línea 218: | ||
</source> | </source> | ||
[[Archivo:firebug_load_5.png]] | [[Archivo:firebug_load_5.png]] | ||
− | |||
− | |||
− | |||
</div> | </div> | ||
</div> | </div> |
Última revisión de 12:00 5 nov 2012