Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des Unterschieds zwischen synchronen Anforderungen und asynchronen Anforderungen

Detaillierte Erläuterung des Unterschieds zwischen synchronen Anforderungen und asynchronen Anforderungen

小云云
小云云Original
2018-03-21 13:12:457737Durchsuche

Erklären Sie zunächst die Konzepte von Synchronisation und Asynchronität.
Synchronisation bezieht sich auf die Kommunikationsmethode, bei der der Sender Daten sendet und darauf wartet, dass der Empfänger eine Antwort zurücksendet, bevor er das nächste Datenpaket sendet. Asynchron bezieht sich auf die Kommunikationsmethode, bei der der Sender Daten sendet, darauf wartet, dass der Empfänger eine Antwort zurücksendet, und dann das nächste Datenpaket sendet.
Die Konzepte der synchronen Kommunikation und der asynchronen Kommunikation
Bei der synchronen Kommunikation müssen beide Parteien mit derselben Taktfrequenz kommunizieren und sich genau koordinieren, um eine genaue Synchronisierung von Sender und Empfänger durch gemeinsame Nutzung einer einzigen Takt- oder Zeitimpulsquelle sicherzustellen ;
Asynchrone Kommunikation erfordert keine Synchronisierung zwischen beiden Parteien. Beide Parteien können einem asynchronen Kommunikationsprotokoll folgen und Zeichen als Datenübertragungseinheiten verwenden unsicher und die Übertragungseffizienz ist weniger effizient als die Synchronübertragung.
Kommunikationsauswahl des Benutzers zum Aufrufen von WEB-Diensten: synchron oder asynchron.
Benutzer können Serviceaufrufe synchron oder asynchron implementieren. Aus Verbrauchersicht besteht der Unterschied zwischen den beiden Ansätzen:
Synchron – der Verbraucher ruft den Dienst über einen einzelnen Thread auf, dieser Thread sendet die Anfrage, blockiert, während der Dienst ausgeführt wird, und wartet auf eine Antwort.
Asynchron – Ein Verbraucher ruft einen Dienst über zwei Threads auf; ein Thread sendet die Anfrage, während ein separater Thread die Antwort empfängt.
Die Begriffe synchron und asynchron werden oft mit sequenziell und Parallelität verwechselt. Die beiden letztgenannten Begriffe beziehen sich auf die Reihenfolge, in der einzelne Aufgaben ausgeführt werden müssen, während sich synchron und asynchron auf die Art und Weise beziehen, wie ein Thread eine einzelne Aufgabe ausführt (z. B. das Aufrufen eines einzelnen Dienstes). Eine gute Möglichkeit, den Unterschied zwischen synchronen und asynchronen Aufrufen zu verstehen, besteht darin, die Folgen der Wiederherstellung nach einem Absturz zu berücksichtigen:
Synchron – Wenn ein Verbraucher beim Blockieren abstürzt, während der Dienst ausgeführt wird, kann er beim Neustart keine Verbindung mehr zum laufenden Aufruf herstellen Anruf, daher geht die Antwort verloren. Der Benutzer muss den Anrufvorgang wiederholen und hoffen, dass es dieses Mal nicht zum Absturz kommt.
Asynchron – Wenn der Verbraucher abstürzt, während er nach dem Senden einer Anfrage auf eine Antwort wartet, kann er beim Neustart weiter auf die Antwort warten, sodass die Antwort nicht verloren geht.
Die Wiederherstellung nach einem Absturz ist nicht der einzige Unterschied zwischen synchronen und asynchronen Aufrufen. Wenn Sie jedoch feststellen möchten, in welche Richtung ein Anruf geht, sollten Sie überlegen, wie jeder die Wiederherstellung nach einem Absturz handhabt, was Ihnen oft eine gute Antwort liefern kann.
+++++++++++++++++++++++++++++++++++++++++++++ +++++++
Bei der Verwendung von Ajax in der Java-Webentwicklung ist es wichtig, den Unterschied zwischen synchronen und asynchronen Kommunikationsmodellen vollständig zu verstehen (siehe Ressourcen). Die mangelnde Unterstützung asynchroner Kommunikationsmodelle hat Auswirkungen auf die clientseitige Entwicklung, die Integration mit Web-Frameworks, die Verwendung von Tag-Bibliotheken, die IDE-Nutzung und das Thread-Verhalten.
Im synchronen Anfrage/Antwort-Kommunikationsmodell ist es immer der Browser (im Gegensatz zu einem Webserver, Anwendungsserver oder einer Webanwendung), der die Anfrage (über den Webbenutzer) initiiert. Der Webserver, Anwendungsserver oder die Webanwendung antwortet dann auf die eingehende Anfrage. Der Benutzer kann den Browser nicht weiter verwenden, während das synchrone Anforderungs-/Antwortpaar verarbeitet wird.
Im asynchronen Anforderungs-/Antwort-Kommunikationsmodell ist die Kommunikation vom Browser (über den Webbenutzer) zum Webserver, Anwendungsserver oder der Webanwendung (und umgekehrt) entkoppelt. Bei der Verarbeitung asynchroner Anfrage-/Antwortpaare können Webbenutzer den Browser weiterhin verwenden, während die aktuelle asynchrone Anfrage verarbeitet wird. Sobald die asynchrone Anforderungsverarbeitung abgeschlossen ist, wird die asynchrone Antwort (vom Webserver, Anwendungsserver oder der Webanwendung) zurück an die Clientseite übermittelt. Normalerweise hat der Anruf während dieses Vorgangs keine Auswirkungen auf Webbenutzer. Sie müssen nicht auf eine Antwort warten.
Das Senden von Daten in Jquery Ajax kann synchron oder asynchron erfolgen. 1. Was ist der Unterschied zwischen synchron und asynchron? , 2. Unter welchen Umständen wird es verwendet? Synchron: Senden Sie die Anfrage –>Warten Sie auf Serververarbeitung –>Nach der Verarbeitung und Rückgabe kann der Client-Browser in diesem Zeitraum nichts tun.
Asynchron: Die Anfrage wird durch ein Ereignis ausgelöst –>Serververarbeitung (d. h. die Browser kann noch andere Dinge tun)->Verarbeitet 1. Mein Verständnis: 1. Zielstrebigkeit: Sie können im Moment nur eine Sache tun, und andere Dinge müssen warten, bis die aktuelle Sache abgeschlossen ist, bevor Sie mit der Sache fortfahren können als nächstes. 2. Halbherzig: Sie können mehrere Dinge gleichzeitig tun: Ihre linke Hand drückt die Leertaste, Ihre rechte Hand kann weiterhin auf die Maus drücken und Ihre Augen müssen gleichzeitig auf den Bildschirm schauen, was sehr ist hart. 2. Bitte schauen Sie sich das folgende Skript an: Funktion

ValidateClick()
{ var areaNo=$("#<%=drpList.ClientID %>").val(); if(areaNo) { alert("请选择"); return false; } $.ajax({
cache:"False",
type:"POST", (A)//async: false, 【(A)】
url:"Validate.ashx",
data:$("#form1").serialize(), 
success:function(o)
{ 
if(o=="ERROR") { alert("输入错误!"); return false;} 
else if(o=="OK")
{ alert("正确!");return true; } 
else
{ alert("其他错误!"); return false;}
},
error:function(xhr, ajaxOptions, thrownError)
{ alert("网络异常,稍后重试!"); return false; }
}); // 【(B) 】 //alert("这里");return true;}

Bei (A): Der Standardwert ist nicht wahr, was bedeutet, dass asynchrone Übertragung verwendet wird. Wenn asynchron: wahr: Wir verwenden POST, um die Daten zu senden die URL Nach dem Aufrufen der Seite wird gleichzeitig die Methode oder Funktion unter [(B)] ausgeführt. Unabhängig davon, ob das Ergebnis unter (A) zurückgegeben wurde, wurde (B) ausgeführt In (A) wird es gemäß dem angegebenen if ausgeführt. Eine Eingabeaufforderung wird angezeigt, wenn async: false: Zu diesem Zeitpunkt müssen Sie warten, bis das Ergebnis bei (A) zurückgegeben wird, und dann die if-Beurteilungsanweisung ausführen. Nachdem das Urteil abgeschlossen ist, führen Sie die Funktion bei (B) aus.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Unterschieds zwischen synchronen Anforderungen und asynchronen Anforderungen. 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