AJAX : Recuperer des données en asynchrone

Fermé
IdleMan Messages postés 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 - 10 oct. 2008 à 14:23
IdleMan Messages postés 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 - 13 oct. 2008 à 16:02
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 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
13 oct. 2008 à 16:02
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 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
13 oct. 2008 à 14:09
Ben d'apres la doc sa devrai marcher oui
7
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
13 oct. 2008 à 12:21
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 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
10 oct. 2008 à 14:33
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 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
11 oct. 2008 à 01:53
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 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
12 oct. 2008 à 01:48
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 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
13 oct. 2008 à 12:01
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 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
13 oct. 2008 à 13:39
Donc ma requete devrais ressembler a ça ? :

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

afficher (requete);

}
});
1