Posez votre question Signaler

AJAX : Recuperer des données en asynchrone

IdleMan 247Messages postés 17 janvier 2008Date d'inscription 18 janvier 2012Dernière intervention - Dernière réponse le 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 !!!
Lire la suite 

AJAX : Recuperer des données en asynchrone »

8 réponses
Réponse
+3
moins plus
Ben d'apres la doc sa devrai marcher oui
Ajouter un commentaire
Réponse
+2
moins plus
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 !
Ajouter un commentaire
Réponse
+1
moins plus
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);
}

Ajouter un commentaire
Réponse
+0
moins plus
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.............
			
		}
        }
Ajouter un commentaire
Réponse
+0
moins plus
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 :

http://docs.jquery.com/Ajax/jQuery.ajax#options

J'imagine que l'option "complete" ou "success" correspond a ton onreadystatechange qu'en pense tu ?
Ajouter un commentaire
Réponse
+0
moins plus
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é
Ajouter un commentaire
Réponse
+0
moins plus
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 .
Ajouter un commentaire
Réponse
+0
moins plus
Donc ma requete devrais ressembler a ça ? :

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

afficher (requete);

}
});
Ajouter un commentaire
Ce document intitulé « AJAX : Recuperer des données en asynchrone » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?