AJAX : Recuperer des données en asynchrone

IdleMan Messages postés 254 Statut Membre -  
IdleMan Messages postés 254 Statut Membre -
Hello !! :)

J'utilise depuis quelques temps la Librairie Javascript/AJAX Jquery, mais j'ai un soucis, j'ai besoin d'envoyer une requete ajax et de recevoir une réponse du serveur.

D'après ce que j'ai compris, une requete ajax (donc asynchrone) n'attend pas la réponse du serveur (je ne peut donc pas recuperer les données renvoyées par le serveur) je suis donc obligé de me tourner vers des requete synchrone (SJAX ?) ça marche très bien mais le probleme avec les requetes synchrone c'est que ça bloque le naviguateur .

Ma question est donc la suivante :

Comment recuperer des données serveur tout en restant en asynchrone (avec Jquery)?

Celui qui trouve je lui fais un gros bisoux !!!

8 réponses

IdleMan Messages postés 254 Statut Membre 60
 
Ca marche !! Merci beaucoup t'est un chef !!!

donc récapitualitf pour ceux qui auraient le meme soucis que moi :

Pour recuperer des données serveur en asynchrone avec Jquery :

$.ajax({
type: "POST",
url: "mapage.php",
success : function(contenu,etat){

$("#div").html(contenu);

}

}).responseText;


Merci encore pour ta patience et ta sagacité Mimiste !
11
Mimiste Messages postés 1159 Statut Membre 206
 
Ben d'apres la doc sa devrai marcher oui
7
Mimiste Messages postés 1159 Statut Membre 206
 
ouai mais apparement si tu regarde la doc de jQuery tu peu passer deux parametres a ta fonction avec "data" qui est le resultat de la requete et "textStatus" l'etat de la requete

function (data, textStatus) {
afficher (data);
}

3
Mimiste Messages postés 1159 Statut Membre 206
 
Salut

JQuery je n'utilise pas je peu pas te dire precisement le code.. Mais je sais que quand je code quelque chose qui utilise l'ajax, l'objet XMLHttpRequest a un evenement qui ce declenche lorsque le serveur donne une reponse, et c'est donc dans le code de cet evenement que je place le code qui doit etre executé apres la requete ajax...

Alors je pense que dans JQuery il doit y avoir moyen d'acceder a cet evenement qui s'appel "onreadystatechange"

j'utilise ceci moi :

   
        //Attente de fin du traitement
	xhr.onreadystatechange = function()
	{
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200)
		{
                        // suite du Traitement.............
			
		}
        }
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
IdleMan Messages postés 254 Statut Membre 60
 
Tout d'abord merci beaucoup pour ta réponse !

Sous jquery il n'existe pas onreadystatechange, mais il y a peut être un equivalent , voila les options assignées au requetes ajax sous jquery :

https://jquery.com/#options

J'imagine que l'option "complete" ou "success" correspond a ton onreadystatechange qu'en pense tu ?
1
Mimiste Messages postés 1159 Statut Membre 206
 
Oui ça doit certainement etre ça, apparement tu peu passer une fonction pour l'option success, j'imagine que ça veut dire que si la requete ajax ce deroule bien il lance la fonction que t'y a passé
1
IdleMan Messages postés 254 Statut Membre 60
 
Le probleme c'est que ma requete ajax ressemble a ça :

var contenu = $.ajax({
type: "POST",
url: 'mapage.php',
}).responseText;

Je recupere donc le contenu dans ma variable contenu grace au retour de responsText.

or si j'utilise un callback comme success :

var contenu = $.ajax({
type: "POST",
url: 'mapage.php',
success : function (){
afficher (contenu);
}
}).responseText;

Le responsetext ne fais pas partis du success, je ne vois pas comment l'y integrer ...
Je suis un peu dans la merde la .
1
IdleMan Messages postés 254 Statut Membre 60
 
Donc ma requete devrais ressembler a ça ? :

$.ajax({
type: "POST",
url: 'mapage.php',
success : function (requete,status){

afficher (requete);

}
});
1