Heim > Artikel > Web-Frontend > Details zur AJAX-Ausführungssequenz-Problemlösung in JS (mit Lösungen)
Dieser Artikel erklärt hauptsächlich das Problem der Lösung der Ausführungsreihenfolge von Ajax in js. Schauen wir uns nun diesen Artikel über die Lösung der Ausführungsreihenfolge von Ajax in JS an Es gibt Probleme mit der Ausführungsreihenfolge, insbesondere mit der Ausführungsreihenfolge von AJAX. Die Standardausführungsreihenfolge in js ist von oben nach unten.
Schauen Sie sich den folgenden Code an
callback:function(value, validator, $field){ $.ajax({ url : window.ctx+"/sys/manager/validateLoginName", data:{loginName:value}, type : 'post', dataType : "json", async:true, success: function(result){ if(result!=null) globalVariable.flag=result; alert(1) }}); alert(2) if(globalVariable.flag!=1)return true; if(globalVariable.flag==1)return false; }
Da es sich bei AJAX hier um eine asynchrone Anfrage handelt, wird zuerst 2 und dann 1 im Browser angezeigt
Dies wird zu Problemen führen Wenn das Flag standardmäßig 0 ist und nach der Ausführung von AJAX zu 1 wird, verwendet die if-Anweisung tatsächlich 0, um die Entscheidung zu treffen, was nicht mit unserem Zweck vereinbar ist. Wir möchten das nach der Ausführung von AJAX zugewiesene Flag verwenden if Judgement (Wenn Sie mehr sehen möchten, besuchen Sie die Spalte „AJAX Development Manual“ der PHP-Website für Chinesisch, um mehr zu erfahren)
Die Methode des ersten Typs
Der Grund, warum ein solches Problem auftritt, liegt darin, dass AJAX eine asynchrone Anforderung verwendet. Wenn wir also 1 und dann 2 anzeigen möchten, müssen wir nur Änderungen vornehmen AJAX in synchron ändern, d Der AJAX-Rückruf ist abgeschlossen
Natürlich verwenden wir AJAX. Um asynchron zu sein, kann die obige Methode bei besonderen Anforderungen so gehandhabt werden
Die zweite Methode wird häufiger verwendet
Zum Beispiel der folgende Codeabschnittfunction test(){
$.ajax({
url : window.ctx+"/sys/manager/addUserRole",
data:formData,
type : 'post',
dataType : "json",
processData:false,
contentType:false,
success: function(result){
if(result!=null){
testCallback();
}
}});
test2();
}
function testCallback(){
alert(1)
}
function test2(){
alert(2)
}
AJAX ist asynchron. Wir möchten zuerst 1 und dann 2 anzeigen Sie müssen nur test2 in die Rückruffunktion von test einfügen
Gefällt mir
function test(){ $.ajax({ url : window.ctx+"/sys/manager/addUserRole", data:formData, type : 'post', dataType : "json", processData:false, contentType:false, success: function(result){ if(result!=null){ testCallback(); } }}); } function testCallback(){ alert(1) test2() } function test2(){ alert(2) }
Dieser Artikel endet hier (wenn Sie mehr sehen möchten, besuchen Sie die chinesische PHP-Website
AJAX-BenutzerhandbuchSpalte zum Lernen). Wenn Sie Fragen haben, können Sie unten eine Nachricht hinterlassen.
Das obige ist der detaillierte Inhalt vonDetails zur AJAX-Ausführungssequenz-Problemlösung in JS (mit Lösungen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!