Le moyen le plus pratique de faire plusieurs demandes AJAX

une sorte de noobie jQuery ici .. Je me demande s’il existe un moyen de fusionner plusieurs demandes AJAX en un seul object JSON? Par exemple. Si j’ai…

$.ajax({ dataType: 'json', url: "test1.html", context: document.body }).done(function() { $(this).addClass("done"); }); 

et

 $.ajax({ dataType: 'json', url: "test2.html", context: document.body }).done(function() { $(this).addClass("done"); }); 

Est-ce que je peux fusionner les deux donc je n’ai qu’un seul object JSON. Et si oui, cela serait-il bénéfique? Ou existe-t-il un moyen plus pratique de gérer plusieurs demandes AJAX?

Chacune des fonctions ajax doit être modifiée pour renvoyer un object différé qui gère les rappels pour un appel une fois terminé. La fonction done() est chaînée à partir de $.when pour déclarer le code à exécuter lorsque tous vos appels ajax ont abouti.

La fonction done() reçoit un argument pour chacun des appels ajax. Chaque argument contient un tableau des arguments qui seraient transmis au rappel de réussite de cet appel ajax. Donc, si vous consultez la documentation, vous voyez la puissance des objects différés .

Cela va append le punch dont vous avez besoin dans votre code. J’espère que cela t’aides. Paul

Vous pouvez faire un tour. Vous devez être prudent lorsque vous l’utilisez afin de ne pas gâcher les choses. Je vous donne une logique globale vous permettant de faire la mise en œuvre complète.

 function fireAjax(functions_list) { // The variable functions_list will contain the list of functions like "getUsers,getStatsData,getTopnews" $.ajax({ //bla bla bla data:{"getUsers[group_id]":group_id,"getUsers[foo]":bar,"getStatsData[limit]":limit}, success:function(json_result) { // You have to form the result also according to the function names like /* { getUsers:[user1,user2,user3....], getStatsData[stats1,stats2.....], bla bla bla... } */ // handle your responses here one by one } }) }