Me pregunto cómo mostrar una imagen que indica que se está ejecutando la solicitud asíncrona. Utilizo el siguiente código para realizar una solicitud asíncrona:
$.ajax({
url: uri,
cache: false,
success: function(html){
$('.info').append(html);
}
});
¿Algunas ideas?
javascript
jquery
css
Voto a favor
fuente
fuente
document
. Ver stackoverflow.com/questions/2275342/…Utilice las funciones beforeSend y complete del objeto ajax. Es mejor mostrar el gif desde adentro antes de enviar para que todo el comportamiento quede encapsulado en un solo objeto. Tenga cuidado al ocultar el gif utilizando la función de éxito. Si la solicitud falla, probablemente querrá ocultar el gif. Para hacer esto, use la función Completar. Se vería así:
fuente
Código HTML :
Código CSS:
Código JQUERY:
fuente
La "imagen" que la gente suele mostrar durante una llamada ajax es un gif animado. Dado que no hay forma de determinar el porcentaje completo de la solicitud ajax, los gifs animados utilizados son hilanderos indeterminados. Esta es solo una imagen que se repite una y otra vez como una bola de círculos de diferentes tamaños. Un buen sitio para crear su propio spinner indeterminado personalizado es http://ajaxload.info/
fuente
Creo que esto podría ser mejor si tiene toneladas de llamadas $ .ajax
NOTA:
Si usa CSS. El elemento que desea que se muestre mientras ajax obtiene datos de su código de back-end debe ser así.
fuente
Siempre me gustó el
BlockUI
complemento: http://jquery.malsup.com/block/Le permite bloquear ciertos elementos de una página, o toda la página mientras se ejecuta una solicitud ajax.
fuente
Antes de su llamada, inserte la imagen de carga en un div / span en algún lugar y luego en la función de éxito elimine esa imagen. Alternativamente, puede configurar una clase css como carga que podría verse así
Y luego asigne esta clase a un span / div y límpielo en la función de éxito
fuente
algo como esto:
fuente
Puede agregar inicio de ajax y evento completo, esto es un trabajo para cuando hace clic en el botón de evento
fuente
Ahora muéstrelo usando la función jquery show element justo encima de su ajax.
$('#example_load').show(); $.ajax({ type: "POST", data: {}, url: '/url', success: function(){ // Now hide the load element $('#example_load').hide(); } });
fuente
fuente