Escolar Documentos
Profissional Documentos
Cultura Documentos
css
Buscar
Login | Registro
Seguira@m idesw eb
0 votos
En jQuery existen diversas funciones para producir AJAX, con diversas aproximaciones que nos ofrecen
soluciones diferentes y que sern acordes a distintos tipos de necesidades. En este artculo quiero
ofrecer una gua bsica que nos sirva de introduccin a AJAX en el Manual de jQuery y que nos ayude a
saber cules son los mtodos disponibles y en qu casos nos pueden servir.
Al decir "funciones de bajo nivel" no significa que sean poco poderosas o poco tiles, sino que debemos
entenderlo justamente al contrario. Son ms cercanas a lo que sera el AJAX del navegador, ms
personalizables y ms potentes. Las de alto nivel tienen una interfaz y uso muchsimo ms simple, pero
son menos potentes porque estn preparadas para un uso en concreto.
La verdad es que casi todas las funciones de jQuery son de alto nivel, menos jQuery.AJAX() que es de
bajo nivel, junto con otros mtodos que normalmente no vamos a usar. Es bueno conocer bien
jQuery.AJAX() porque es un mtodo con el que podemos realizar cualquier tipo de comportamiento AJAX.
Tambin la encontraremos documentada o usada como $.AJAX() y yo la llamo "AJAX todopoderoso"
porque con ella podremos realizar cualquier tipo de uso que podamos necesitar.
Nota: sabemos que $ es un sinnimo de jQuery, por lo tanto decir jQuery.AJAX() es lo mismo que $.AJAX().
Ahora bien, lo cierto es que si sabemos escoger las funciones de alto nivel y configurarlas bien,
raramente vamos a necesitar usar la funcin de bajo nivel $.AJAX(). Aunque tambin podramos darle la
vuelta a la tortilla y decir lo contrario, si sabemos usar $.AJAX() nunca necesitaramos usar las funciones
de alto nivel. Aunque esto es verdad, a veces conviene usar los comportamientos de alto nivel porque
generan menos cdigo y nuestros scripts sern menos pesados y tambin ms entendibles.
Las funciones de alto nivel tienen especializaciones para realizar diversos tipos de conexiones AJAX y a
su vez tambin tienen distintos niveles de complejidad. Por ejemplo, la funcin .load() simplemente carga
un texto en un elemento del HTML, es solo para ese uso, no podemos enviar datos al servidor por POST
y no admite que el servidor te d la respuesta en JSON, pero es extremadamente potente, porque con
una nica llamada al mtodo resuelvo todo lo que se necesita de una nica vez. Sin embargo, hay otras
funciones que todava siendo sencillas tienen ms posibilidades, como jQuery.post() que nos permite
configurar una llamada AJAX que enve datos al servidor por el mtodo "post".
Nota: En la documentacin, los mtodos que estoy llamando como de "alto nivel" los encontramos clasificados
como "Shorthand Methods" y como nos da a entender, son algo as como atajos rpidos para invocar
funcionalidades AJAX ms especficas.
Si queremos enviar datos por GET a una pgina, podramos usar .load() indicando esos datos "a mano"
en la URL del archivo que estamos accediendo, pero existen mtodos ms indicados para hacer sto.
$("#elemento").load("pagina.php?dato=222");
El mtodo load() se encarga de todo, hacer la solicitud al servidor y enviar el HTML de la respuesta al
contenedor sobre el que hemos invocado .load(). Si te interesa saber ms puedes consultar el artculo
titulado AJAX muy sencillo con jQuery.
$.get() y $.post()
Dos mtodos hermanos que hacen prcticamente lo mismo: una conexin AJAX enviando
datos al servidor. La nica diferencia es que $.get() enva los datos por GET (en la URL) y
$.post() los enva por POST (en las cabeceras del HT T P).
A estos mtodos les enviamos un juego de parmetros un poco ms complejo, aunque solamente es
obligatorio el primero de ellos.
$.get("url.php", {
dato: "valor",
dato2: "valor2"
}, function(respuesta){
$( "#resultado" ).html( data );
}, "html");
Esto llamara a la URL "url.php" pasando por mtodo GET los datos y valores indicados en el segundo
parmetro. Cuando se reciba la respuesta se ejecutar la funcin indicada en el tercer parmetro y el
dato que se espera recibir del servidor como respuesta tiene el formato indicado en el cuarto parmetro,
Como utilidad adicional, estos mtodos que estamos viendo ahora devuelven un "objeto AJAX" que
podemos usar para realizar nuevas acciones que configuren nuestra solicitud. Por ejemplo, podremos
definir cosas como qu hacer cuando la solicitud se ejecute si se produce un error, etc.
var objetoAJAX = $.get( "loquesea.php", function() {
//hacer algo cuando hay respuesta del AJAX
});
objetoAJAX.done(function() {
//hacer otra cosa cuando hay respuesta correcta de la solicitud
})
objetoAJAX.fail(function() {
//hacer algo cuando se produce un error
})
objetoAJAX.always(function() {
//hacer algo tanto en error como en xito
});
Las funciones a ejecutar con este objeto AJAX se encuentran descritas con mayor detalle en el artculo
Eventos en una solicitud AJAX con $.get() en jQuery
$.getScript()
Se trata de otro mtodo "shorthand", interesante por ser un atajo para cargar un script
Javascript y ponerlo en ejecucin cuando se haya recibido correctamente. Podemos
configurar un envo de datos y este mtodo lo har por GET , igual que se enviaban en
$.get(). Podemos decir, en resumen, que se usa igual que $.get(), pero la resuesta del
servidor ests dicindole que se recibir en un script Javascript que se debe ejecutar segn
se tenga.
$.getJSON()
Es otro "shorthand method" bastante utilizado que recibe una respuesta en JSON. Es
exactamente igual que lo comentado con "getScript()", solo que en la respuesta
Hay otra clasificacin de mtodos en la documentacin de jQuery que se llama "Global AJAX
Event Handlers", que son eventos globales que podemos asignar a cualquier solicitud AJAX
que se produzca en una pgina.
La utilidad que tienen es que se definen una nica vez y afectan a todas las llamadas AJAX que podamos
realizar en esa pgina, de modo que podemos ahorrarnos la parte de configuracin de diversos
comportamientos tpicos, como los mensajes de "cargando...", en cada una de las funciones AJAX. Es
decir, los defines una vez y ya valen para todas las llamadas AJAX.
Existen eventos para cuando se produce una solicitud, como para cuando se produce un error, xito en
la respuesta, etc. Estos eventos los aades al objeto jQuery del documento extendido.
$( document ).AJAXError(function() {
alert("error en una solicitud AJAX (no me preguntes en cul)");
});
T odo lo que hemos visto que se puede hacer con las funciones de ms alto nivel lo
podemos implementar con la funcin $.AJAX(). La potencia de ese mtodo es impresionante
y permite realizar diversas configuraciones especficas que no podramos hacer por los
mtodos shorthand, como por ejemplo configurar un mecanismo para que una solicitud
AJAX no pase nunca por la cach del navegador, utilizar crossDoman en una solicitud como
JSONP, controlar diversas respuestas del servidor especficas como errores 404, definir un
tiempo mximo de espera para una solicitud AJAX, indicar un nombre de usuario y
contrasea si estamos conectando con un servidor que requiera autenticacin HT T P, etc.
El estudio de este mtodo es interesante y no nos costar mucho cuando ya conozcamos bastante los
mtodos de atajos.
obtener una cadena que realice una serializacion de estos objetos arrays o formularios,
que podemos enviar de una manera inmediata en una solicitud HT T P.
El ejemplo ms tpico es la serializacin de un formulario.
$( "#miformulario ).serialize()
La respuesta a este mtodo serialize() la puedes usar directamente como datos que envias al servidor al
hacer una llamada AJAX.
$.post(url, $( "#miformulario ).serialize(), FuncionExito);
Conclusin
Lo que has podido leer en este artculo te ofrecer una visin global de todo lo que hay
para el trabajo con AJAX en jQuery. Es bueno tener una idea previa sobre lo que te vas a
encontrar para a partir de aqu saber qu funciones podrn ser las que te interesen para
resolver tus problemas.
Podrs encontrar ms informacin sobre AJAX en jQuery en los siguientes artculos de este manual. No
dejes de practicar y documentarte tambin desde la documentacin oficial de la librera, en donde
encontrars siempre contenido actualizado y nuevos ejemplos con los que entender las utilidades que se
nos ofrece.
AqpHost
aqphost.com
hostingdecalidadparatusclientesytusproyectosweb
Autor
Seguira@m idesw eb
Subir
Manual
Manual
Manual de jQuery
Mtodo jQuery.extend()
$.get() de jQuery para hacer una solicitud Ajax tipo HTTP GET
Comentarios
Enviar un comentario al artculo
Daniel
Ajax al poder
26/11/2013
Hola:
0 votos
iscenigmax
Plugin Ajax
28/11/2013
Aqui dejo un plugin para el uso de ajax en jquery para mayor soporte: :D
https://github.com/iscenigmax/JQuery/blob/master/ServiceAjax.js
Marcar como spam
Enviar un comentario al artculo
Compartir
3
59
Tw eet
Com partir
48
Recom endar
Principales
Monotemticos
Blogging
Manuales
Desde cero
Actualidad
FAQs
HTML, CSS
De inters
En directo
Javascript, Ajax
Agenda
0 votos
Vdeos
Diseo, ASP
Powered by:
Desarrolloweb.com Copyright
Publicidad Acerca de
Datos legales
Contacta