¿Hay alguna manera de verificar si hay una solicitud de Ajax en curso? Algo así como:Solicitud de Ajax en curso jQuery
if ($.ajax.inProgress){ do this; } else { do that; }
¿Hay alguna manera de verificar si hay una solicitud de Ajax en curso? Algo así como:Solicitud de Ajax en curso jQuery
if ($.ajax.inProgress){ do this; } else { do that; }
Debe establecer básicamente una variable en la parte superior del guión establecido en false
y en ajax iniciado la pusieron a true
y en el controlador success
la pusieron a false
de nuevo como described here.
Si tiene el control total del código de JavaScript, puede incrementar una variable siempre que inicie una solicitud de Ajax y la disminuya cuando la solicitud finalice (con éxito, error o tiempo de espera). De esta manera siempre sabrá si hay una solicitud en progreso.
sí hay
$.ajax({
type: 'get',
url: 'url',
data: {
email: $email.val()
},
dataType: 'text',
success: function(data)
{
if(data == '1')
{
$response.attr('style', '')
.attr('style', "color:red;")
.html('Email already registered please enter a different email.');
}
else
{
$response.attr('style', '')
.attr('style', "color:green;")
.html('Available');
}
},
beforeSend: function(){
$email.addClass('show_loading_in_right')
},
complete: function(){
$email.removeClass('show_loading_in_right')
}
});
la beforeSend hará el proceso que tiene que hacer cuando la petición ajax acaba de comenzar y completa se llamará cuando la solicitud Ajax se ha completado.
documentation
No creo que esto resuelva la pregunta del OP. No quiere saber cómo despedir a los controladores antes de enviar la solicitud o una vez que se completa la solicitud, quiere activar ciertos eventos cuando una solicitud * está en curso * ... – SexyBeast
Es posible que como este:
$(document).ready(function() {
var working = false;
$("#contentLoading").ajaxSend(function(r, s) {
$(this).show();
$("#ready").hide();
working = true;
});
$("#contentLoading").ajaxStop(function(r, s) {
$(this).hide();
$("#ready").show();
working = false;
});
$('#form').submit(function() {
if (working) return;
$.post('/some/url', $(this).serialize(), function(data){
alert(data);
});
});
});
Para cancelar petición Ajax, Uso
if($.active > 0){
ajx.abort();//where ajx is ajax variable
}
continuar ejecutando petición Ajax, Uso
if($.active > 0){
return;
}
No encuentro ninguna documentación con respecto a $ .active. ¿Puedes mostrar algún ejemplo para aplicar esta función? –
@Ganesh, eche un vistazo a estas publicaciones: http://stackoverflow.com/questions/3148225/jquery-active-function. – StartCoding
A veces las mejores soluciones son las más simples :) ¡Gracias! – bah
@bah: De nada y está de acuerdo :) – Sarfraz
¡Hola! Estoy probando una página web y me gustaría saber cómo voy a saber cuándo se completa la solicitud de Ajax utilizando una secuencia de comandos Java (es decir, no tengo control de la página web, solo puedo insertar una secuencia de comandos Java). –