Hallo Jungs,AJAX fortsetzen/resume nach Abbruch
ich möchte fragen, ob es eine Möglichkeit ist, abgebrochene Ajax fortzusetzen. Ich habe arraz von Ajax-Aufrufe in defferreds wie folgt aus:
var defferreds = [];
defferreds.push(
$soap.ajax({
type: "POST",
dataType: "json",
url: "some_url.php",
cache: false,
}).done(function(data) {
/* do something */
}).fail(function(jqXHR,status, errorThrown) {
console.log(jqXHR.responseText);
})
);
Es gibt wie 20 weitere Ajax (n) in der defferreds Array. Wenn der Benutzer auf die Schaltfläche abort_ajax klickt, sollte er alle Ajaxs abbrechen, die noch nicht erledigt sind. Ich verwende diese Funktion, um dies zu tun:
Hier geht der Teil, wo ich brauche deine Hilfe. Sobald der Benutzer auf die Schaltfläche resume_ajax klickt, sollte er die verbleibenden Ajaxes aus dem defferreds-Array aufrufen und vervollständigen. Das Problem ist, dass ich keine Ahnung habe, wie man abgebrochenen Ajax startet, obwohl ich es in meinem Array von Defferreds gespeichert habe. Ist es möglich abgebrochene Ajaxen fortzusetzen? Und nur diejenigen, die abgebrochen wurden und nicht diejenigen, die erfolgreich beendet wurden?
EDIT: Im fragen, ob es die Möglichkeit nicht nur abgeschlossen ajaxes erneut auszuführen ist. Ich habe die Lösung ausprobiert, die in here verwendet wird, aber es löst nicht mein konkretes Problem. Sobald ich resume_ajax Taste nichts klicken Sie geschieht, obwohl ich diesen Code verwendet:
$('.resume_ajax').click(function(){
for (var key in defferreds){
$soap.ajax(defferreds[key]);
}
});
Was ist die genaue Codezeile, die wieder abgebrochene ajaxes nennt? Kann es sogar mit einem Ajax-Ruf erreicht werden, der wie einer in meinem Defferreds-Array aussieht? Denn wie gesagt, nichts ist passiert.
EDIT2:
Ich betreibe die ajaxes wie folgt aus:
function run_ajaxes(){
var defferreds = [];
/* there are around 20 same ajax calls just with another url */
defferreds.push(
$soap.ajax({
type: "POST",
dataType: "json",
url: "some_url.php",
cache: false,
}).done(function(data) {
/* do something */
}).fail(function(jqXHR,status, errorThrown) {
console.log(jqXHR.responseText);
})
);
}
$('.run_ajaxes').click(function(){
run_ajaxes();
});
Mögliche Duplikat [weiter einen abgebrochen AJAX (jqXHR) request] (http://stackoverflow.com/questions/18837293/continue-an-aborted-ajax-jqxhr-request) –
Ich denke, Sie müssen die Ajax-Optionen erneut übergeben und es erneut ausführen. – maheshiv
Da Sie ein Array haben, können Sie den Status jedes Ajax in Ihrem Array speichern. So können Sie die abgebrochenen erkennen und wieder anrufen ... – EhsanT