Jquery continue une autre fonction ajax après que le premier appel de la fonction ajax est complètement terminé
J'ai 2 appel ajax dans 2 différence de fonctions. Je veux utiliser .cliquez pour appeler ces 2 fonctions
. Le func1 est de l'insertion des données dans la base de données, puis func2 est de récupérer les données donc ma question est comment faire pour attendre jusqu'à ce que le func1 entièrement complète, la seule exécution de la func2.
J'ai essayé .delay(), ça fonctionne, mais je pense que c'est une stupide solution.
$("#updateLocation").click(function(e){
e.preventdefault;
func1();
func2();
});
return false;
});
function func1(){
$.ajax({
url:'',
});
});
function func2(){
$.ajax({
url:'',
});
});
source d'informationauteur vzhen
Vous devez vous connecter pour publier un commentaire.
Trois façons:
Appel func2 sur le succès de func1:
Utilisation
Deferred
API pour appeler func2 quand funky complète:Faire func1 synchrone (non recommandé):
Depuis les appels Ajax sont asynchrones, l'application ne sera pas "pause" jusqu'à ce qu'un appel ajax est complète, et suffit de lancer l'appel suivant immédiatement.
JQuery propose un gestionnaire qui est appelée lorsque l'appel est un succès, et un autre si une erreur se produit au cours de l'appel.
Vous souhaitez appeler votre deuxième AJAX fonction à partir du gestionnaire de succès.
Déplacer func2 à l'intérieur de func1->ajax>succès de rappel
Appel fun2 dans la réussite de func1
Vous pouvez définir l'option "async" pour de faux (pour le premier appel ajax).
Cela signifie que la fonction 2 sera appelée après la fonction 1 a reçu une réponse, c'est à dire fini de l'exécution.
vous pouvez également passer votre fonction en tant que paramètre comme ceci: