Heim  >  Artikel  >  Web-Frontend  >  Details zur AJAX-Ausführungssequenz-Problemlösung in JS (mit Lösungen)

Details zur AJAX-Ausführungssequenz-Problemlösung in JS (mit Lösungen)

寻∝梦
寻∝梦Original
2018-09-10 15:17:292287Durchsuche

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)

Lösung:

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

Die zweite Methode wird häufiger verwendet

Zum Beispiel der folgende Codeabschnitt

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();
			  }
		}});
         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-Benutzerhandbuch

Spalte 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn