Salut avoir 4 directives sur la page, toutes les directives exigent la liste des utilisateurs. La liste d'utilisateurs est stockée dans une base de données nécessitant une requête hhtp. Comme la directive 4 figure sur la page en même temps, 4 appels ajax différents ont été envoyés au serveur pour une réponse similaire.Comment gérer plusieurs appels Ajax appelant la même fonction?
Ensuite, la réponse est mise en cache.
Ce qui peut être fait que toutes les 4 directives reçoivent sa liste d'utilisateurs et qu'un seul ajax est envoyé au serveur.
code directive intérieur (auto est ce) (ajaxCallService est le service)
ajaxCallService.getUser(function(response) {
self.users = response;
//Next operations
});
service ajaxCallService
Variable
var userList = []
Method
if (!userList.length) {
$http.post({
url: #,
data:#
})
.then(
function(response) {
userList = response.allMembers;
callback && callback(userList);
}
);
}else{
callback && callback(userList);
}
Comment puis-je éviter 4 appels ajax et seulement faire 1 appel et laisser les autres 3 attente pour la réponse et passer la réponse en arrière?
Utilisez des promesses angulaires. –
appelle chaque fonction ajax à l'intérieur du rappel du précédent. –