Eu estou usando jQuery.ajax para o meu site onde o usuário pode selecionar várias caixas de seleção. E a partir da caixa de seleção selecionada, o usuário obterá os dados.
Para cada caixa de seleção, ele está fazendo uma solicitação ajax e mostrando o resultado.
Mas estou enfrentando um problema em que suponho que o usuárioMarque a primeira caixa de seleção e desmarque a primeira caixa de seleção e selecione novamente a segunda caixa de seleção. Então, para selecionar a primeira caixa de seleção, ele faz a primeira chamada ajax e quando o usuário desmarca a primeira caixa de seleção, ele faz a segunda chamada de ajax e a segunda caixa de seleção faz a terceira chamada de ajax.
assim, simultaneamente, 3 chamadas do ajax estão ativas, mas eu quero uma maneira de abortar todas as chamadas anteriores do ajax que ainda estão pendentes ou em andamento e mostram o resultado conforme a última / recente chamada do ajax.
Código que estou usando para a chamada Ajax:
jQuery.ajax({url: "/xyz.php",
success: function(data) {
//do something
}
});
Respostas:
1 para resposta № 1Você pode fazer assim.
var CurrentAjaxReq = null;
if(CurrentAjaxReq != null)
{
CurrentAjaxReq.abort();
}
CurrentAjaxReq = jQuery.ajax({url: "/xyz.php",
success: function(data) {
CurrentAjaxReq = null;
//do something
}
});
1 para resposta № 2
você pode cancelar a chamada do ajax primeiro,
var myAjax = jQuery.ajax({url: "/xyz.php",
success: function(data) {
//do something
}
});
//abort first and than send new ajax
myAjax .abort()