J'ai cherché et ce problème semble simple mais ne peut pas trouver la réponse. J'ai plusieurs demandes appelant une URL différente. Mais pour chaque URL, je veux seulement le résultat une fois et que ce soit le dernier dans la même URL étant appelé. Mon problème est maintenant "Comment obtenir le dernier" seulement? " J'ai regardé cela et il semble avoir 3 ans:
3 Réponses :
Cela explique Comment utiliser jQuery pour faire un appel Ajax et comment l'abandonner. Tout ce que vous avez à faire est de créer un tableau qui stocke chaque demande. Vous pouvez ensuite annuler la demande précédente tout en ajoutant le nouveau.
ajaxRequests = new Array(); queueRequest = function() { if(ajaxRequests[ajaxRequests.length - 1]) { ajaxRequests[ajaxRequests.length - 1].abort(); } ajaxRequests[ajaxRequests.length] = //Insert New jQuery AJAX call here. }
Puisque nous voulons seulement le résultat de la dernière demande, c'est très simple et fonctionne.
var ajax = null; var getFoo = function() { if(ajax) ajax.abort(); ajax= $.ajax({}); }; getFool(); getFool(); getFool(); getFool(); getFool(); getFool();
Au lieu d'utiliser la bibliothèque, vous pouvez utiliser la méthode de base JQuery Ajax:
Par exemple: P> Beforesend: {} code> p>
xhr = jQuery.ajax({
url: /*Your URL*/
type: "POST",
data: {
//data
},
/* if there is a previous ajax request, then we abort it and then set xhr to null */
beforeSend : function() {
if(xhr != null) {
xhr.abort();
}
},
success:function(){}
});