Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen synchronem und asynchronem Ajax? Einführung in den Unterschied zwischen Ajax-Synchronisation und Asynchronität

Was ist der Unterschied zwischen synchronem und asynchronem Ajax? Einführung in den Unterschied zwischen Ajax-Synchronisation und Asynchronität

不言
不言Original
2018-10-11 10:42:0719665Durchsuche

Für Ajax sollten wir wissen, dass Ajax hauptsächlich zum Anfordern von Daten vom Server-Backend auf der Front-End-Seite verwendet wird. Ajax ist entsprechend in zwei Ausführungsmethoden unterteilt: synchron (async = false) und asynchron (async = true). Was ist dann der Unterschied zwischen den synchronen und asynchronen Anforderungsmethoden von ajax? In diesem Artikel erhalten Sie eine detaillierte Analyse des Unterschieds zwischen Ajax-Synchronisation und asynchroner Ausführung.

Werfen wir zunächst einen Blick auf Was sind synchrone und asynchrone Ajax-Anfragen?

Ajax-Asynchron-Anfrage:

Eine asynchrone Anfrage ist, wenn die Anfrage weiterhin von Ajax gesendet wird Die Lade- und Benutzervorgänge entsprechen dem Vorgehen in zwei Zeilen, wobei jede ihren eigenen Weg geht, ohne sich gegenseitig zu beeinflussen. Der allgemeine Standardwert ist true. Asynchrone Anfragen wirken sich überhaupt nicht auf das Benutzererlebnis aus, egal wie lang oder kurz die Anfrage ist, der Benutzer konzentriert sich auf die Bearbeitung anderer Inhalte auf der Seite und hat keine Lust zu warten.

Zum Beispiel:

$.ajax({  
     type:"POST", 
     url:"Venue.aspx?act=init", 
      dataType:"html", 
     success:function(result){  //function1()
       f1(); 
       f2();  
    } 
     failure:function (result) {  
      alert('Failed');  
     }, 
 } 
 function2();

Erläuterung: Wenn der Ajax-Block im obigen Code eine Anfrage sendet, bleibt er in Funktion1() und wartet auf die Rückkehr vom Server, jedoch am Gleichzeitig (während dieses Wartevorgangs) führt die Rezeption Funktion2() aus.

Ajax-synchrone Anfrage:

Eine synchrone Anfrage bedeutet, dass der Browser nach Ausgabe der aktuellen Anfrage nichts tun kann und muss Warten Sie, bis die Anforderung abgeschlossen ist und die Daten zurückgegeben werden. Dies entspricht einer Warteschlange. Das heißt, wenn der JS-Code in das aktuelle Ajax geladen wird, werden alle Codes auf der Seite nicht mehr geladen Wenn dieser Ajax ausgeführt wird, befindet sich die Seite im Zustand der angehaltenen Animation. Nach Abschluss werden weiterhin andere Codepages ausgeführt, um den angehaltenen Animationsstatus freizugeben (d. h. wenn Ajax die Daten zurückgibt, werden die nachfolgenden Funktionen ausgeführt). .

Zum Beispiel:

$.ajax({  
     type:"POST", 
     url:"Venue.aspx?act=init", 
     dataType:"html", 
     async: false,    success:function(result){  //function1()
       f1(); 
       f2(); 
     } 
    failure:function (result) {  
      alert('Failed');  
     }, 
 } 
 function2();

Erläuterung: Wenn asyn im obigen Code auf „false“ gesetzt ist, wird die Ajax-Anfrage synchronisiert, das heißt, nachdem der Ajax-Block die Anfrage an diesen Ort gesendet hat Zeit wird er bei Funktion1() warten und Funktion2() nicht ausführen, bis der Teil Funktion1() abgeschlossen ist.

Nachdem wir die Bedeutung von synchronen und asynchronen Ajax-Anfragen gelesen haben, werfen wir einen Blick auf den Unterschied zwischen synchronen Ajax-Anfragen und asynchronen Anfragen.

Der Unterschied zwischen synchroner Ajax-Anfrage und asynchroner Anfrage:

Im asynchronen Modus:

Nachdem wir die Anfrage mit AJAX gesendet haben, muss möglicherweise Code ausgeführt werden. Zu diesem Zeitpunkt hat der Server möglicherweise aus verschiedenen Gründen nicht auf unsere Anfrage geantwortet, aber da wir die asynchrone Ausführung verwenden, wird der verbleibende Code in allen Funktionen, die AJAX-Anfragecode enthalten, weiterhin ausgeführt. Wenn wir das Anforderungsergebnis zur Verarbeitung an eine andere JS-Funktion übergeben, ist es so, als würden zwei Threads gleichzeitig ausgeführt.

Im synchronen Modus:

Nachdem wir AJAX zum Senden der Anfrage verwendet haben, gibt es noch Code, der später ausgeführt werden muss, und wir übergeben auch den Server Die Antwort muss an eine andere JS-Funktion verarbeitet werden, aber die Codeausführungssituation zu diesem Zeitpunkt ist: Wenn der Server nicht antwortet oder die JS-Funktion, die das Antwortergebnis verarbeitet, die Rückgabe nicht verarbeitet und abgeschlossen hat, enthält der verbleibende Code der Funktion die Anforderung Code kann nicht ausgeführt werden. Genau wie ein einzelner Thread wechselt er nach dem Senden der Anforderung in den Blockierungsstatus und der verbleibende Code wird erst dann weiter ausgeführt, wenn er den Blockierungsstatus erreicht.

Das Obige ist der gesamte Inhalt dieses Artikels. Weitere spannende Inhalte finden Sie auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen synchronem und asynchronem Ajax? Einführung in den Unterschied zwischen Ajax-Synchronisation und Asynchronität. 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