jQuery: effectuer une requête AJAX synchrone

Le code suivant est un exemple de requete AJAX effectuée avec jQuery.

var string = 'default';
$.get('/index/test',
  {string: 'test'},
  function(data){
    string = data;
  }
);
alert(string);

Le problème avec ce code est que la valeur de « string » va être affichée avant qu’elle soit mise à jour par la requête AJAX. En effet, la suite du code est exécutée avant que la requête soit terminée. La valeur de « string » va donc être « default ».

Pour ordonner à Javascript d’attendre la fin de la requête pour continuer l’exécution du code, il faut insérer la ligne suivante avant l’exécution de la requête:

$.ajaxSetup({async: false});

Exemple:

var string = 'default';
$.ajaxSetup({async: false});
$.get('/index/test',
  {string: 'test'},
  function(data){
    string = data;
  }
);
alert(string);
//pour remettre la valeur par défaut:
$.ajaxSetup({async: true});

Cette fois ci, la valeur de « string » lors de son affichage sera « test ».

Ce contenu a été publié dans la catégorie Astuces, Javascript . Tags: Bruce. Permalien.

A propos Bruce

Ingénieur informatique passionné par le développement, les nouvelles technologies et depuis quelques années par la blockchain et les crypto-monnaies. Je souhaite faire de la communauté Crypto-Lyon un espace ou tout le monde peut apprendre, s’informer et s’entraider et plus globalement faire rayonner la ville de Lyon dans le monde des cryptos !

Une réflexion au sujet de « jQuery: effectuer une requête AJAX synchrone »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *