Billet du blogue

Du AJAX synchrone avec jQuery (partie 2)

Suite à mon billet de la semaine dernière à propos du AJAX synchrone, j’ai décidé de faire un petit followup.

Nous sommes donc tous d’accord pour dire que faire de l’AJAX synchrone est mauvais. Sauf que dans la vraie vie, il faut trouver des solutions qui fonctionnent en pratique, pas seulement en théorie. Considérons ce code Javascript effectuant une requête AJAX synchrone :

function validerServeur(valeur) {
  $.ajax({
    url: "valider.php",
    data: { "donnees": valeur },
    async: false,
    success: function(retour) {
      valide = (parseInt(retour) === 1) ? true : false;
    }
  })
}

if (validerServeur("blanquette")) {
  alert("La valeur est bonne!");
}

Il fonctionne très bien ce code, right? Le seul problème est qu’il gèle le navigateur si le serveur ne répond pas ou est moindrement lent. La solution? Utiliser un callback que l’on va passer en argument. Et on peut le faire en AJAX asynchrone, ce qui ne gèle pas le navigateur.

function validerServeur(valeur, callback) {
  $.ajax({
    url: "valider.php",
    data: { "donnees": valeur },
    success: function(retour) {
      if (parseInt(retour) === 1) {
        callback();
      }
    }
  })
}

validerServeur("blanquette", function() { alert("La valeur est bonne!"); });

J’utilise cette technique de plus en plus souvent, particulièrement lorsque je dois faire des requêtes AJAX suivies d’autres instructions. Avez-vous une solution alternative pour ce genre de problématique?

Posté le avec les tags: , et .

Commentaires fermés

Les commentaires pour ce billet ont été désactivés un mois après la date de publication de ce-dernier. Vous désirez exprimer votre opinion sur ce billet malgré le fait que les commentaires aient été désactivés ? Utilisez le formulaire de contact.


Fil atom des commentaires de ce billet0 commentaires

Aucun commentaire n'a été posté pour ce billet.