Wie unterscheidet es sich konkret von der Standardeinstellung ( async: true
)?
Unter welchen Umständen würde ich mag ausdrücklich Satz async
auf false
, und hat es etwas mit der Verhütung von anderen Veranstaltungen auf der Seite zu tun , von dem Brennen?
Antworten:
Ja.
Wenn Sie async auf false setzen, muss die aufgerufene Anweisung abgeschlossen sein, bevor die nächste Anweisung in Ihrer Funktion aufgerufen werden kann. Wenn Sie async: true festlegen, beginnt die Ausführung dieser Anweisung und die nächste Anweisung wird aufgerufen, unabhängig davon, ob die asynchrone Anweisung noch abgeschlossen wurde.
Weitere Informationen finden Sie unter: Anonymer Funktionsumfang von jQuery ajax success
quelle
async: false
entfernt die Asynchronität vollständig aus dem Aufruf . Der Aufruf vonajax
Blöcken - der darauf folgende Code wird erst ausgeführt, wenn der Server geantwortet hat.async: false
tot zu sein, ich habe es versucht und bekam18:17:49.384 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help http://xhr.spec.whatwg.org/ 1 jquery.js:9061:4
async:false
= Code angehalten . (Anderer Code, der darauf wartet, dass dies beendet wird.)async:true
= Code fortgesetzt . (Nichts wird angehalten. Anderer Code wartet nicht .)So einfach ist das.
quelle
Async:False
hält die Ausführung des Restcodes. Sobald Sie eine Antwort von Ajax erhalten, wird nur dann der Rest des Codes ausgeführt.quelle
Wenn Sie den asynchronen Abruf deaktivieren, wird Ihr Skript blockiert, bis die Anforderung erfüllt wurde. Es ist nützlich, um eine Reihe von Anforderungen in einer bekannten Reihenfolge auszuführen, obwohl ich asynchrone Rückrufe als sauberer empfinde.
quelle
Ein Anwendungsfall besteht darin, einen
ajax
Anruf zu tätigen , bevor der Benutzer das Fenster schließt oder die Seite verlässt. Dies entspricht dem Löschen einiger temporärer Datensätze in der Datenbank, bevor der Benutzer zu einer anderen Site navigieren oder den Browser schließen kann.quelle
Von
https://xhr.spec.whatwg.org/#synchronous-flag
Die synchrone XMLHttpRequest außerhalb der Mitarbeiter wird gerade von der Webplattform entfernt, da sie sich nachteilig auf die Benutzererfahrung auswirkt. (Dies ist ein langer Prozess, der viele Jahre dauert.) Entwickler dürfen für das asynchrone Argument nicht false übergeben, wenn die globale JavaScript-Umgebung eine Dokumentumgebung ist. Benutzeragenten werden dringend gebeten, vor einer solchen Verwendung in Entwicklertools zu warnen, und können versuchen, eine InvalidAccessError-Ausnahme auszulösen, wenn sie auftritt. Die zukünftige Richtung besteht darin, XMLHttpRequests nur in Arbeitsthreads zuzulassen. Die Nachricht soll eine entsprechende Warnung sein.
quelle
Wenn Sie async auf false setzen, müssen die Anweisungen nach der Ajax-Anforderung warten, bis die Anforderung abgeschlossen ist. Im Folgenden finden Sie einen Fall, in dem Async auf false gesetzt werden muss, damit der Code ordnungsgemäß funktioniert.
Das obige Beispiel erklärt deutlich die Verwendung von Async: false
Indem wir es auf false setzen, haben wir sichergestellt, dass, sobald die Daten von der URL abgerufen wurden , erst danach php_data zurückgegeben wird. wird genannt
quelle
return php_data
Anweisung nicht in der Erfolgsfunktion enthalten sein kann, sondern außerhalb der$.ajax()
Funktion liegen muss. Ich hatte mein Äquivalent desreturn php_data
Inneren in das gesetztsuccess: function(){}
und es kehrte immer undefiniert zurückVerwenden Sie diese Option Dezimalstellen: 3
Hier ist die URL: https://demos.telerik.com/kendo-ui/numerictextbox/index
quelle