Heim  >  Artikel  >  Web-Frontend  >  Ist Ajax standardmäßig eine asynchrone Anfrage?

Ist Ajax standardmäßig eine asynchrone Anfrage?

WBOY
WBOYOriginal
2022-07-01 16:59:493353Durchsuche

ajax ist standardmäßig eine asynchrone Anfrage; in Ajax können Sie anhand des asynchronen Werts feststellen, ob es sich um eine asynchrone Anfrage handelt Dies bedeutet, dass die Ajax-Anfrage asynchron ist und der Wert von async standardmäßig „true“ ist, sodass Ajax standardmäßig eine asynchrone Anfrage ist.

Ist Ajax standardmäßig eine asynchrone Anfrage?

Die Betriebsumgebung dieses Artikels: Windows 10-System, Javascript 1.8.5 und HTML5-Version, Dell G3-Computer.

Ist Ajax standardmäßig asynchron?

Ajax wird standardmäßig asynchron übermittelt;

AJAX ist entsprechend den verschiedenen asynchronen Werten 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.

ajax ist standardmäßig eine asynchrone Anfrage, d. h. async:true, Sie können sie synchron machen, indem Sie den Parameter asycn:false

$.ajax({
                                        url: 'www.test.com/test/test',
                                        type: 'POST',
                                        data: {name:"test"}
                                        async: false,
                                        error: function() {
                                            console.log('error');
                                        },
                                        success: function(resp) {
                                            console.log('success');
                                        }
                                    });

Hinweis: Wenn Sie diese Art von Vorgang haben. Vor dem Aufruf von Ajax habe ich ein Flag = false geschrieben, aber im Erfolgsrückruf von Ajax können das Setzen von Flag = True und andere Vorgänge im asynchronen Zustand von Ajax nicht das gewünschte Ergebnis erzielen.

Da Ajax standardmäßig asynchron ist, ist es möglich, den Callback-Flag = True-Vorgang auszuführen, nachdem Sie die nachfolgenden Vorgänge abgeschlossen haben! !

Erweitertes Wissen:

Wie implementiert AJAX synchrone Anfragen?

Ajax-Anfragen werden in synchrone Anfragen und asynchrone Anfragen unterteilt, aber die Standardanfragen sind asynchrone Anfragen. Wenn wir also Ajax für synchrone Anfragen verwenden möchten, wie sollten wir diese synchrone Anfrage implementieren? Der folgende Artikel stellt Ihnen die Implementierung der Ajax-Synchronisierungsanfrage vor. Freunde in Not können darauf verweisen.

Zunächst sollten wir wissen, dass die Synchronisierung ein einzelner Thread ist und der Code nacheinander ausgeführt wird. Wenn der js-Code in die aktuelle synchrone Ajax-Anfrage geladen wird, werden alle anderen Codes auf der Seite nicht mehr geladen und die Seite wird geladen in einem Zustand der angehaltenen Animation, bis die Anforderung abgeschlossen ist. Nach Abschluss der Ausführung werden andere Anforderungen ausgeführt.

Zweitens sollten wir wissen, dass Ajax entsprechend dem Wert von async in zwei Anforderungsmethoden unterteilt ist: Wenn der Wert von async wahr ist, handelt es sich um die asynchrone Anforderungsmethode ist falsch, es handelt sich um die synchrone Anforderungsmethode. Um eine Ajax-Synchronisierungsanforderung zu implementieren, müssen Sie nur den Wert von async auf false setzen.

$.ajax(
 
      type:“POST”/“GET”
 
      url:"",
 
      data:{},
 
      dataType:"json",
 
      async:false,  //同步
 
     success:function(response){
 
           }     
 
   );

Was ist der Unterschied zwischen synchronen und asynchronen Ajax-Anfragen und welche Nutzungsszenarien gibt es?

Verstehen 1:

AJAX ist in zwei Ausführungsmethoden unterteilt: synchron (async = false) und asynchron (async = true); im W3C-Tutorial wird die asynchrone Ausführung empfohlen Lassen Sie uns den Unterschied zwischen Synchronisation und Asynchronität unterscheiden:

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 erfolgt 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.

Wie wähle ich den synchronen oder asynchronen Modus? Um diese Frage zu beantworten, können wir sie durch die folgenden möglichen Fragen beantworten:

Nach dem Senden der AJAX-Anfrage müssen wir die Antwortergebnisse des Servers weiterhin verarbeiten, wenn wir den asynchronen Anforderungsmodus verwenden und die Verarbeitung nicht übergeben Die Ergebnisse werden von einer anderen JS-Funktion verarbeitet. Zu diesem Zeitpunkt kann folgende Situation auftreten: Die Antwort auf die asynchrone Anforderung ist noch nicht eingetroffen und die Funktion hat die Ausführung der Return-Anweisung abgeschlossen, was dazu führt, dass das Rückgabeergebnis eine leere Zeichenfolge ist.

Verstehen 2:

Synchronisation: Eine Anfrage senden, auf die Rückgabe warten und dann die nächste Anfrage senden

Asynchron: Eine Anfrage senden, nicht auf die Rückgabe warten und die nächste Anfrage jederzeit senden

Durch die Synchronisierung können Deadlocks vermieden werden. Die Sperre, das Vorkommen schmutziger Daten, wird im Allgemeinen verwendet, wenn eine bestimmte Ressource gemeinsam genutzt wird. Wenn jeder über Änderungsberechtigungen verfügt und gleichzeitig eine Datei ändert, ist es möglich, dass eine Person den Inhalt einer anderen Person liest Die Person wurde gelöscht und es tritt ein Fehler auf. Es wird der Reihe nach geändert.

Asynchron kann die Effizienz verbessern. Heutzutage sind CPUs Dual-Core- oder Quad-Core-Prozessoren. Wenn Sie asynchron arbeiten, müssen Sie natürlich sicherstellen, dass sie gleichzeitig verarbeitet werden können.

Der größte Unterschied zwischen synchron und asynchron ist. Der eine muss warten, der andere nicht.

Das Versenden von Textnachrichten ist beispielsweise ein asynchrones Beispiel. Der Status des Empfängers ist dem Initiator egal. Es muss nicht auf die Rückmeldung des Empfängers gewartet werden und die nächste Übertragung kann durchgeführt werden.

Telefon ist ein Beispiel für Synchronisierung. Der Initiator muss auf den Empfänger warten und die Kommunikation beginnt erst, wenn der Anruf verbunden ist. Sie müssen auf die Rückgabeinformationen vom Empfänger warten

Und die Synchronisierungsprobleme, die wir oft diskutieren, treten meist bei Problemen bei der Datenfreigabe in Multithread-Umgebungen auf. Das heißt, wenn mehrere Threads auf dieselbe Ressource zugreifen müssen, müssen sie in einer bestimmten Reihenfolge vorliegen, um sicherzustellen, dass nur ein Thread zu einem bestimmten Zeitpunkt auf die Ressource zugreifen kann. Wenn asynchron verwendet wird, werden die laufenden Ergebnisse des Programms geändert unberechenbar sein. Daher müssen in diesem Fall die Daten synchronisiert werden, dh nur ein Prozess kann auf die Ressource zugreifen und andere Threads müssen warten.

Zu den Mechanismen zur Erzielung einer Synchronisierung gehören hauptsächlich kritische Abschnitte, Mutexe, Semaphoren und Ereignisse.

Kritischer Abschnitt: Greifen Sie über die Serialisierung von Multithreads auf öffentliche Ressourcen oder einen Code zu, was schnell ist und sich zur Steuerung des Datenzugriffs eignet. Wenn mehrere Threads versuchen, auf öffentliche Ressourcen zuzugreifen, werden andere Threads, die versuchen, auf öffentliche Ressourcen zuzugreifen, angehalten und warten, bis sie den kritischen Abschnitt verlassen und der kritische Abschnitt freigegeben wird, können andere Threads ihm zuvorkommen.

Mutex: Übernimmt den Mutex-Objektmechanismus. Nur Threads, die sich gegenseitig ausschließende Objekte besitzen, haben die Berechtigung, auf öffentliche Ressourcen zuzugreifen. Da es nur ein sich gegenseitig ausschließendes Objekt gibt, ist gewährleistet, dass nicht mehrere Threads gleichzeitig auf öffentliche Ressourcen zugreifen. Mutex kann nicht nur die sichere gemeinsame Nutzung öffentlicher Ressourcen derselben Anwendung realisieren, sondern auch erkennen, dass die sichere gemeinsame Nutzung öffentlicher Ressourcen verschiedener Anwendungen komplizierter ist als der kritische Abschnitt. Denn durch die Verwendung des gegenseitigen Ausschlusses kann nicht nur eine sichere gemeinsame Nutzung von Ressourcen zwischen verschiedenen Threads derselben Anwendung erreicht werden, sondern auch eine sichere gemeinsame Nutzung von Ressourcen zwischen Threads verschiedener Anwendungen.

Semaphor: Es ermöglicht mehreren Threads, gleichzeitig auf dieselbe Ressource zuzugreifen, muss jedoch die maximale Anzahl von Threads begrenzen, die gleichzeitig auf diese Ressource zugreifen können. Die Art und Weise, wie das Semaphorobjekt Threads synchronisiert, unterscheidet sich von den vorherigen Methoden. Das Signal ermöglicht mehreren Threads die gleichzeitige Nutzung gemeinsam genutzter Ressourcen, was dem PV-Vorgang im Betriebssystem entspricht. Es gibt die maximale Anzahl von Threads an, die gleichzeitig auf gemeinsam genutzte Ressourcen zugreifen können. Es ermöglicht mehreren Threads den gleichzeitigen Zugriff auf dieselbe Ressource, muss jedoch die maximale Anzahl von Threads begrenzen, die gleichzeitig auf diese Ressource zugreifen können.

Ereignisse: Halten Sie die Thread-Synchronisierung durch Benachrichtigungsvorgänge aufrecht und erleichtern Sie außerdem den Prioritätsvergleich mehrerer Threads.

【Ähnliche Tutorial-Empfehlung: AJAX-Video-Tutorial

Das obige ist der detaillierte Inhalt vonIst Ajax standardmäßig eine asynchrone Anfrage?. 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