Heim > Artikel > Web-Frontend > Ist Ajax standardmäßig synchron oder asynchron?
ajax verwendet standardmäßig die asynchrone Übermittlung; AJAX wird entsprechend dem asynchronen Wert in synchrones „falsch“ und asynchrones „wahr“ unterteilt, und standardmäßig ist der asynchrone Wert wahr (asynchrone Übermittlung). Dies hat den Vorteil, dass die Benutzererfahrung durch teilweise Aktualisierung verbessert werden kann, während gleichzeitig Ressourcen gespart und die Belastung der Datenbank verringert wird.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Die Standardübermittlungsmethode von Ajax ist die asynchrone Übermittlung. Der Vorteil besteht darin, dass die Benutzererfahrung durch teilweise Aktualisierung verbessert und gleichzeitig Ressourcen gespart und die Belastung der Datenbank verringert werden kann.
AJAX wird entsprechend dem Wert von async in synchron (async = false) und asynchron (async = true) unterteilt.
$.ajax({ type: "post", url: "path", cache:false, async:false, dataType: ($.browser.msie) ? "text" : "xml", success: function(xmlobj){ function1(){}; } }); function2(){};
Standardmäßig ist async true (asynchrone Übermittlung).
Der Weg zur Synchronisierung besteht darin, den Standardwert von async in false zu ändern, was normalerweise true oder nicht geschrieben ist. Wenn er in false geändert wird, geht die Funktion von Ajax verloren.
1. Was ist eine synchrone Anfrage: (falsch)
Eine synchrone Anfrage bedeutet, dass der Browser nach der Ausgabe der aktuellen Anfrage nichts tun kann. Er muss warten, bis die Anfrage abgeschlossen ist und die Daten zurückgegeben werden Der Code wird ausgeführt, was äquivalent ist zu Wenn Sie sich in die Warteschlange stellen, ist die Person vor Ihnen mit der Erledigung ihrer Angelegenheiten fertig, bevor die nächste Person übernehmen kann. Das heißt, wenn der JS-Code in das aktuelle AJAX geladen wird, wird der gesamte Code auf der Seite nicht mehr geladen und die Seite befindet sich in einem angehaltenen Animationszustand. Wenn das AJAX abgeschlossen ist, wird es weiterhin ausgeführt Codes und die Seite geben den angehaltenen Animationsstatus frei (dh wenn Ajax zurückkehrt) Nach dem Empfang der Daten wird die folgende Funktion 2 ausgeführt.
2. Was ist eine asynchrone Anfrage: (wahr)
Eine asynchrone Anfrage bedeutet, dass der Browser während des Sendens der Anfrage weiterhin alles tun kann, was keinen Einfluss auf das Laden der Seite und den Betrieb des Benutzers hat , was äquivalent ist zu: Auf beiden Linien geht jede ihren eigenen Weg, ohne sich gegenseitig zu beeinflussen.
Im Allgemeinen ist der Standardwert wahr, asynchron. 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.
Was ist der Unterschied zwischen synchron und asynchron:
Asynchron: Im asynchronen Modus muss möglicherweise Code ausgeführt werden, nachdem wir AJAX zum Senden der Anforderung verwendet haben. 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.
Synchronisation: Im synchronen Modus gibt es, nachdem wir AJAX zum Senden der Anfrage verwendet haben, 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 zu diesem Zeitpunkt ist: auf dem Server Wenn keine Antwort vorliegt 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.
Sehen Sie sich den folgenden Code an:
var flag=true; var index=0; $.ajax({ url: "", success: function(data){ flag=false; } }); while(flag){ index++; } alert(index);
Endlich ist das Programm in eine Endlosschleife eingetreten.
Sehen Sie sich den folgenden Code an:
var flag=true; $.ajax({ url: "", success: function(data){ flag=false; } }); alert(flag);
Das Endergebnis ist wahr Für eine bestimmte Zeitspanne muss sogar ein Netzwerkfehler auftreten und das Ergebnis wird zu diesem Zeitpunkt nicht zurückgegeben. Wenn es synchron ausgeführt wird, müssen Sie warten, bis Ajax das Ergebnis zurückgibt, bevor der nächste Code ausgeführt wird Eine Ajax-Anfrage dauert 1 Minute, das Programm muss 1 Minute warten. Wenn es asynchron ausgeführt wird, führt der Vordergrund das Skript hinter dem Ajax-Block weiter aus, bis der Server normale Ergebnisse zurückgibt Der Block stellt die Anfrage, einen Thread und das Skript hinter dem Ajax-Block
Das obige ist der detaillierte Inhalt vonIst Ajax standardmäßig synchron oder asynchron?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!