Ich habe den üblichen AJAX-Pool implementiert, aber wenn ich alle Anfragen abbringe, bricht es sie in Schritten von 2 Anfragen ab, dh. erste, dritte, fünfte ... Dies ist im Grunde, was ich tue:Alle AJAX-Anfragen abbrechen
$.ajaxSetup({
beforeSend: function(jqXHR, settings) {
$.xhrPool.push(jqXHR);
},
complete: function(jqXHR, text) {
// Remove a completed request from the array
var index = $.xhrPool.indexOf(jqXHR);
if (index > -1) {
$.xhrPool.splice(index, 1);
}
},
error: function(jqXHR, textStatus, errorThrown) {
// Remove a error request from the array
var index = $.xhrPool.indexOf(jqXHR);
if (index > -1) {
$.xhrPool.splice(index, 1);
}
}
});
function abortAll() {
$.each($.xhrPool, function(key, value) {
value.abort();
});
}
Wenn ich einen console.log(value)
innerhalb des $.each
tun, einige von ihnen sind nicht definiert. Wenn ich eine console.log($.xhrPool)
vor der $.each
mache, sehen sie alle ok aus.
Was fehlt mir?
Wie Sie sie sind abgebrochen, sind die vollständige und Fehler-Callback synchron geschieht ? Ich würde nicht erwarten, aber, vielleicht, –
Sie können stattdessen vollständig verwenden, um das Element zu entfernen, um Ihren Code DRY zu halten. –