0 votes

Joindre des résultats ajax ?

J'ai besoin de générer un résultat à partir de 2 XMLHttpRequests. Comment puis-je effectuer les requêtes simultanément et attendre qu'elles se terminent toutes les deux ?

J'ai pensé à quelque chose comme...

resp1="";
req1.onreadystatechange=function(){if(this.readyState=4)resp1==this.responseText;}
req2.onreadystatechangefunction(){if(this.readyState=4) finish(this.responseText);}
function finish(resp2){
if (resp1=="") setTimeOut(finish(resp2),200);
else {
... both are done...
}

Je ne l'ai pas encore testé, mais je suppose que cela fonctionnera. Existe-t-il une meilleure solution ? Mon code doit être aussi court et rapide que possible.

1voto

SLaks Points 391154

Vous n'avez pas besoin de minuterie pour cela.

Il suffit de vérifier dans chaque callback si l'autre a terminé et, si c'est le cas, d'appeler finish .

Par exemple :

var resp1 = null, resp2 = null;

req1.onreadystatechange = function() {
    if (this.readyState === 4) {
        resp1 = this.responseText;
        if (resp2 !== null) finish();
    }
};
req2.onreadystatechange = function() {
    if (this.readyState === 4) {
        resp2 = this.responseText;
        if (resp1 !== null) finish();
    }
};

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X