Standardmäßig ist die $ .ajax-Anfrage in jQuery auf asynchron gesetzt. Der Variablenname ist async und der Wert wird auf "True" gesetzt. Das hat mir auch etwas Verwirrung gebracht, als ich das erste Mal davon erfahren habe, also lass uns darüber reden.
Asynchron oder synchron
Die Standardeinstellung in jQuery. Nach meiner Erfahrung sollte Asynchronous fast immer den Trick machen. Es gibt auch 2 Situationen, die nicht einmal einen synchronen Anruf erlauben.
- Übergreifende Domain-Anfragen. Wenn ich eine ajax-Anfrage von techjunkie.com an eine Datei auf wherever.com (eine komplett andere Domain) mache, wäre das eine Cross-Domain-Anfrage.
- jsonp - Wenn Sie JRE-Daten domänenübergreifend abrufen möchten, suchen Sie nach JSONP.
Wann muss ich Synchron verwenden?
Sie sollten sich zunächst bewusst sein, dass das Setzen von async auf false Ihren Browser einfriert. Es schließt es komplett ab. Nicht nur Ihre Seite, sondern jede Seite, die der Benutzer geöffnet hat. Wenn Ihr Server beispielsweise während der Anforderung langsamer wird, haben Sie den Browser effektiv deaktiviert, bis Ihr Server die Möglichkeit hat, die erforderlichen Daten aufzuholen und weiterzugeben.
Anstatt es mit einem synchronen Aufruf zu riskieren, geben Sie einfach eine Callback-Funktion für Erfolg oder Fehler an. Sie gelangen zu demselben Endpunkt, ohne das Surfverhalten des Benutzers zu beeinträchtigen. Kurz gesagt, verwenden Sie keinen synchronen Anruf. Es ist schlecht für Ihre Anwendung und UX.