warten Sie, bis die Funktionen mit ajax-calls beenden der Ausführung in jquery
ich habe 3 Funktionen und in jeder Funktion habe ich ein AJAX-Aufruf ist synchron in der Natur.
function()
{
a();
b();
c();
}
a()
{
ajaxGet(globals.servicePath + '/Demo.svc/GetDemoList/' + sessionStorage.SessionId,function(data, success) {}, '', {async: false}, false);
}
ähnlich für b() und c().
nun will ich warten, für die Durchführung dieser Aufrufe und fahren Sie dann mit dem anderen Operationen, da diese Vorgänge basieren auf den Ergebnissen, die ich hier erhalten. wie kann ich dies tun?
Sie haben die Kontrolle über den code in
Blick in jquery .Versprechen.getan
blog.slaks.net/2015-01-04/async-method-patterns
Verwenden Sie niemals
Wenn Sie synchrone dann müssen Sie nicht haben, etwas besonderes zu tun, überhaupt auf Sie zu warten.
a()
, b()
oder c()
? Wenn dem so ist, senden Sie das Versprechen von $.ajax
und verwenden $.when
in Ihrem anonymen Funktion.Blick in jquery .Versprechen.getan
blog.slaks.net/2015-01-04/async-method-patterns
Verwenden Sie niemals
async: false
. Lernen, zu arbeiten, wie Browser bestimmt (asynchron) 🙂Wenn Sie synchrone dann müssen Sie nicht haben, etwas besonderes zu tun, überhaupt auf Sie zu warten.
InformationsquelleAutor Nikki | 2015-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
async: false
. Auf diese Weise führt zur dunklen Seite!Eine Lösung ist die Verwendung der jQuery-verspricht kehrte von Ajax-Aufrufe.
Wenn du wissen willst, wenn alle 3 fertig sind (asynchron in beliebiger Reihenfolge) verwenden
$.when()
:und erhalten Sie jedes Methode, um die Rückkehr der jQuery Versprechen der Ajax-Aufruf:
Ich verspottet, einige gefälschte "ajax-calls" verwenden Sie Timer, um dies zu zeigen:
JSFiddle: http://jsfiddle.net/TrueBlueAussie/rqq41Lg3/
Wenn, aus irgendeinem Grund, Sie wollen, dass Sie nacheinander ausgeführt werden, dann feuern Sie Ihre extra-code, Sie können Kette mit
then
JSFiddle: http://jsfiddle.net/TrueBlueAussie/rqq41Lg3/1/
InformationsquelleAutor Gone Coding