Heim > Artikel > Web-Frontend > Was ist der Unterschied zwischen Ajax-Synchronisation und asynchroner Synchronisation?
Unterschied: 1. Bei der Synchronisierung muss ein Thread warten, bis die Ausführung des vorherigen Threads abgeschlossen ist, bevor er mit der Ausführung beginnen kann, während im asynchronen Modus, wenn ein Thread ausgeführt wird, der nächste Thread mit der Ausführung beginnen kann, ohne auf dessen Abschluss warten zu müssen Ausführung; 2. Synchronisierung ist eine Single-Thread-Operation, Asynchron ist eine Multi-Thread-Operation. 3. Asynchron ist effizienter als synchronisiert.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Asynchrone Ajax-Anfrage:
Asynchrone Anfrage bedeutet, dass der Browser während der Anfrage weiterhin etwas tun kann, was keinen Einfluss auf das Laden der Seite und den Betrieb des Benutzers hat zwei Zeilen: Jeder geht seinen eigenen Weg, ohne sich gegenseitig zu beeinflussen. Der allgemeine Standardwert ist true. Asynchrone Anfragen beeinträchtigen das Benutzererlebnis überhaupt nicht, 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();
Erklärung: Wenn der Ajax-Block im obigen Code eine Anfrage sendet, bleibt er in Funktion1() und wartet auf die Rückkehr vom Server, aber gleichzeitig (während dieses Wartevorgangs) , führt die Rezeption Funktion2() aus.
Ajax-synchrone Anfrage:
Eine synchrone Anfrage bedeutet, dass der Browser nach der Ausgabe der aktuellen Anfrage nichts mehr tun kann. Er muss warten, bis die Anfrage abgeschlossen ist und die Daten zurückgegeben werden, bevor der nachfolgende Code ausgeführt wird Äquivalent zur Warteschlange, das heißt, wenn der JS-Code in den aktuellen Ajax geladen wird, werden alle Codes auf der Seite nicht mehr geladen und die Seite befindet sich in einem angehaltenen Animationszustand. Nach der Ausführung des Ajax werden andere Codeseiten ausgeführt Führen Sie die Ausführung fort, um den angehaltenen Animationsstatus freizugeben (d. h. wenn Ajax die Daten zurückgibt, wird die Seite angehalten. Führen Sie die folgenden Funktionen aus).
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 zu diesem Zeitpunkt gesendet hat, wartet er in Funktion1( ) Ort, Funktion2() wird erst ausgeführt, wenn der Teil Funktion1() ausgeführt wird.
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 synchronen Ajax-Anforderungen und asynchronen Anforderungen:
Synchronisierung bedeutet, dass ein Thread warten muss, bis die Ausführung des vorherigen Threads abgeschlossen ist, bevor er mit der Ausführung beginnen kann. Die Synchronisierung kann als Single-Thread-Vorgang betrachtet werden. Solange der Client dies anfordert, bevor der Server keine Rückmeldungsinformationen hat, befindet er sich in einem Thread-Blockierungszustand.
Asynchron bedeutet, dass, wenn ein Thread ausgeführt wird, der nächste Thread mit der Ausführung beginnen kann, ohne darauf warten zu müssen, dass die Ausführung abgeschlossen ist. Asynchron ist definitiv Multithreading. Wenn der Client dies anfordert, können andere Threads ausgeführt werden. Dieser Thread wird in seiner Warteschlange gespeichert und ordnungsgemäß ausgeführt.
Asynchron ist effizienter als synchron. Wenn Daten zwischen Threads geteilt werden, muss die Synchronisierung verwendet werden!
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. Wir übergeben die Serverantwort auch zur Verarbeitung an eine andere JS-Funktion, aber die Codeausführungssituation ist bei Diesmal gilt Folgendes: Wenn der Server nicht antwortet oder die JS-Funktion, die das Antwortergebnis verarbeitet, nicht verarbeitet und zurückgegeben wurde, kann der verbleibende Code der Funktion, der den Anforderungscode enthält, 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.
【Ähnliche Tutorial-Empfehlung: AJAX-Video-Tutorial】
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Ajax-Synchronisation und asynchroner Synchronisation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!