Je dois appeler une fonction JavaScript qui renvoie le contenu d'un appel AJAX.
Pour atteindre ce résultat, j'ai défini une option Async sur false dans l'appel Ajax. P>
function ajaxQuery(){
var content;
$.ajax({
url: "blabla.html,
async: false,
success: function(data){
content = data
}
});
return content;
}
5 Réponses :
vous ne pouvez pas. p>
Les appels AJAX synchrones congeleront complètement le navigateur et doivent être évités à tout prix; Il n'y a aucun moyen autour de cela. P>
Au lieu de cela, vous devez passer la valeur à l'aide d'un rappel, de la même manière $. Ajax code>. P>
Votre problème est que vous retournez du contenu à la fin; Au lieu de cela, modifiez le DOM dans le rappel de réussite que vous avez enregistré (ou appelez une fonction qui fait). Vous voulez probablement enregistrer un rappel d'erreur également qui fait quelque chose si le serveur retourne à moins de 200. P>
Affiche un message de statut de chargement ... jusqu'à l'obtention de la réponse. P>
Problème de ce code est que les données sont transmises au rappel et de sorte que cette partie du code sera excrectée quelque temps avant celui-ci p> Ceci est une cause de retour non défini. p> Comment faire alors? strong> p> au moins c'est comment Je fais. Bonne chance. P> p>
Désactiver tout autre contrôle jusqu'à ce qu'une opération complète p>
Cette question est posée au moins cinq fois par jour.