7
votes

blockui vs ajax avec l'option ASYNC à FALSE

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;
}


1 commentaires

Cette question est posée au moins cinq fois par jour.


5 Réponses :


8
votes

vous ne pouvez pas.

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.

Au lieu de cela, vous devez passer la valeur à l'aide d'un rappel, de la même manière $. Ajax .


0 commentaires

1
votes

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.


0 commentaires

1
votes

Affiche un message de statut de chargement ... jusqu'à l'obtention de la réponse.


0 commentaires

4
votes

Problème de ce code est que les données sont transmises au rappel et de sorte que cette partie du code xxx

sera excrectée quelque temps avant celui-ci xxx

Ceci est une cause de retour non défini.

Comment faire alors? xxx

au moins c'est comment Je fais. Bonne chance.


0 commentaires

0
votes

Désactiver tout autre contrôle jusqu'à ce qu'une opération complète


0 commentaires