Bonjour à tous,
J'aimerais réaliser plusieurs requêtes de ce type . Il y aurait une requête comme vous le vouyait ci-dessous qui récupere les messages, pseudo de l'auteur et date du message en json, une autre qui recupère un json du nom de l'auteur, et une autre qui me renvoi l'avatar de l'auteur. Tout ceci est inchangeable, pour les json, ils doivent malheureusement rester comme ceci, c'est pour ça que je suis la. J'aimerais faire les requêtes pour avoir le nom de l'auteur et de l'avatar quand je connais le pseudo de l'auteur(dans la requetes messages du coup) et avoir les reponses en même temps. Je suis dispo pour plus d'informations. Merci d'avance :)

function messages(){
    var req = new XMLHttpRequest();
    req.open("GET","services/findMessages.php");
    req.timeout=1000;

    req.addEventListener("load",traiteResultatUpdate); // à déclencher lors de la reponse
    //req.addEventListener("error",erreurUpdate); // à déclencher en cas d'échec HTTP
    // récupération des données et envoi :
    req.send(); // envoi de la requête HTTP

}
function traiteResultatUpdate(ev){
  var reponse;
  try {
      reponse = JSON.parse(this.responseText);
  } catch(e) {
      reponse = null;
  }
  var contenu = document.getElementById("contenu");
  if ( !reponse || !reponse.status || reponse.status != "ok" || reponse.result == 0){
      contenu.innerHTML = "Rien à afficher";
  } else {
    affichage = "";
    for(i = 0; i < reponse.result.length; i++){
      affichage += "<div>";
      affichage += "<div class='same_line'> <div class='author_tweet'>" + reponse.result[i].author + "</div>";
      affichage += "<div class='date_tweet'>" + reponse.result[i].datetime + "</div></div>";
      affichage += "<div class='tweet_tweet'>" + reponse.result[i].content + "</div>";
      affichage += "</div>";
    }
  }

}

2 réponses


antho07
Réponse acceptée

Bonsoir,

Les promesses te permettront de réaliser ce que tu souhaites.

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise

Partie Promise.All

Si la cible de tes navigateurs te permettent pas d'utiliser les promesses natives, tu peux regarder ce qui est proposé par Jquery ou autre librairies du marché.

Cordialement.

Picot
Auteur

Merci pour ta réponse, celà me semble interréssant mais j'ai un peu de mal à le mettre en place avec des requêtes xmlhttprequest. J'ai regardé le tuto de Grafikart "Promise, Async & Await mais je n'arrive pas à l'adapter avec l'évenement "load", je ne peux pas utiliser de "onreadystatechange"
Cordialement