jQuery Attendre jusqu'à ce que async appels ajax sont finis
Salut j'ai 2 appels ajax dans mon script, j'ai besoin de courir asnyc de temps libre, mais j'ai besoin de la seconde à attendre jusqu'à ce que le premier est terminé.
$.ajax({
type: "POST",
url: "getText.asmx/ws_getText",
data: parO1,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d.data);
}
, error: function () {
chyba("chyba v požadavku", "df");
}
});
if (parO2.length > 0) {
$.ajax({
type: "POST",
url: "getText.asmx/ws_getText",
data: parO2,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
/*WAIT UNTIL THE FIRST CALL IS FINISHED AND THAN DO SOMETHING*/
}
, error: function () {
chyba("chyba v požadavku", "df");
}
});
Ainsi, toutes les idées? Grâce
OriginalL'auteur user1352324 | 2012-04-23
Vous devez vous connecter pour publier un commentaire.
Si l'utilisation de jQuery 1.5+, vous pouvez utiliser
jQuery.lorsque()
pour accomplir cette tâche. Quelque chose comme (raccourci les appels ajax pour des raisons de concision, il suffit de passer les objets que vous le faites ci-dessus)Vous ne savez pas dans quel ordre ils seront de retour donc, si vous faites rouler ce par la main, vous devez vérifier l'état de la demande et attendre jusqu'à ce qu'il est de retour.
OriginalL'auteur Russ Cam
Vous avez besoin de câbler le deuxième appel à être contenue dans la fonction de rappel de votre premier appel ajax. Comme:
Depuis JavaScript ne marche pas exécuter dans plusieurs threads sur le client, vous ne pouvez pas bloquer le thread jusqu'à ce que certaines conditions sont remplies.
La seule façon de faire un "attendre" serait à
setTimeout
et vérifiez ensuite que votre variable globale. Mais techniquement, cela signifie que votre délai d'attente pourrait se produire après l'appel est fait, mais c'est toujours en attente. Vous feriez mieux de simplement montrer à l'utilisateur une filature gif ou quelque chose pour indiquer que le serveur fonctionne.OriginalL'auteur Tejs
À l'aide de jquery
ça ne semblait pas le mettre en gras qu'on ne le pense, j'ai présenté une édition avec un commentaire pour expliquer ce qui se passait
OriginalL'auteur user3673557
Voici une autre réponse sur l'exécution de la double requêtes ajax. Comme Tejs, l'utilisateur fait un appel ajax au sein de la réussite de la méthode...
L'affiche unis, Vous êtes mieux d'avoir le succès de la méthode de lancer une nouvelle requête ajax.."
Avoir deux dollars.ajax() appelle dans un script
OriginalL'auteur latoyale