Bonjour,

Je développe depuis quelques mois un site Web en utilisant Javascript et Ajax.

Quand je veux interroger le Web Services pour afficher des données, j'ai toujours trois appels Ajax qui se suivent : la connexion au Web Service pour récupérer l'identifiant, l'appel à la procédure qui me retourne mes données et la déconnexion.

Voici un extrait de ma syntaxe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
        $.ajax({
                type: "POST",
                url: gw_url,
                data: w_soap_cnx,
                dataType: "xml",
                async: true,
                headers: {"SOAPAction": '""'},
                contentType: "text/xml; charset=utf-8",
                success: function(reponse)
                {
                   // Je récupère mon ID
                   // J'appelle le WS pour exécuter ma requete
                   $.ajax({
                                 type: "POST",
                                 url: gw_url,
                                 data: w_soap_mes_donnees,
                                 dataType: "xml",
                                 async: true,
                                 headers: {"SOAPAction": '""'},
                                 contentType: "text/xml; charset=utf-8",
                                 success: function(reponse)
                                 {
                                   //Je récupère mes données
                                   //Je me déconnecte
                                     $.ajax({
                                                   type: "POST",
                                                   url: gw_url,
                                                   data: w_soap_mes_donnees,
                                                   dataType: "xml",
                                                   async: true,
                                                   headers: {"SOAPAction": '""'},
                                                   contentType: "text/xml; charset=utf-8",
                                                   success: function(reponse)
                                                   { 
                                                     //Je suis déconnecté
                                                   }
                                     });
                                 }
                        });
                }      
       });

Est-ce que mon imbrication est la meilleure façon de faire ?
Est-ce que je n'ai pas une autre solution pour faire de l'asynchrone sans imbriquer de cette façon ? En sachant que chaque appel doit s'exécuter lorsque le précédent appel est terminé.

J'ai un autre site Web en cours de développement, dans lequel on récupère beaucoup plus de données en passant par plusieurs procédures. J'ai donc parfois trois ou quatre appels entre ma connexion et ma déconnexion. Le code n'est plus très lisible, je trouve...

Je vous remercie d'avance pour vos suggestions.

Cordialement.