IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Execution de plusieurs requetes simultanées


Sujet :

AJAX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Par défaut [AJAX] Execution de plusieurs requetes simultanées
    Bonjour,

    je cherche à réaliser une page contenant plusieurs div. comme chaque div contient un résultat assez lourd niveau requête j'essaye de faire pour chacun un script ajax.
    Donc pour le moment j'ai 3scripts ajax que je lance au chargement de ma page. Le problème est que je n'ai qu'un seul script qui s'exécute. J'ai testé chaque AJAX au cas par cas, tout est ok mais pas quand je lance les 3 en 'même temps'.

    fonction javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function chargement(){
    		un();
    		deux();
    		trois();
    	}
    exemple ajax
    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
     
    function un(){
     
    		creerRequete();
     
    		var url = 'http://mapage.asp?aleat=' +Math.random()
    		var imagecontent ='';
    		var topcontent='';
     
    		requete.open('GET', url, true);
    		requete.onreadystatechange = function() {
    			if(requete.readyState == 4) {
    				if(requete.status == 200) {
    					  var content=requete.responseText;
    					  //alert(content);
    					  document.getElementById('mondiv').innerHTML = content;
     
    				}else{
    						alert(requete.responseText);
    				}
    			}
    		};
    		requete.send(null);
         }

    Comment puis-je faire pour que les 3 requetes se fasse de manière asynchrone de manière à ce que ma page soit fluide?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut.
    j'ai 3scripts ajax que je lance au chargement de ma page.
    Ce serait pas plus efficace de générer directement le contenu sur le serveur
    En général, une requête AJAX lancée au chargement de la page est assez maladroit et inutile...

    Pour ce qui est de ton problème, vu la structure de ton code, il semble que requete soit une variable globale représentant un objet XMLHttpRequest. Du coup, vu que tu lances simultanément tes trois fonction, le requete de chaque est écrasé par celui de la suivante...
    Il faut créer une nouvelle instance pour chaque fonction.
    Enfin, les navigateurs limitent le nombre de requêtes simultanées (en général, c'est 3), donc il faut aussi faire attention à ça
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Par défaut
    Oui voila. La définition de la variable requete est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete = new XMLHttpRequest();
    Je ne comprend pas bien ce que tu entends par "générer directement sur le serveur.." Sinon ok pour la définition de plusieurs variables request. C'est sur cela que j'étais parti. Pour le nombre de requêtes simultanées oui j'avais lu un test dessus, pour IE et firefox c'est 2 simultanées me semble t'il, opéra pouvant en exécuter 4 à la fois.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete = new XMLHttpRequest();
    signifie bien que tu crées une nouvelle instance de l'objet, mais comme tes 3 fonctions initialisent la même variable, chaque déclaration écrase la précédente, du coup, pour les 2 premiers appels, tu envoies une requête mais tu ne peux pas récupérer la réponse puisque l'objet a été détruit.

    Pour ce qui est de générer directement sur le serveur, c'est juste qu'au lieu d'envoyer une requête au chargement de la page, autant récupérer les données directement au moment où tu construis ta page (dans un script PHP par exemple)
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 64
    Par défaut
    Pour le nombre de requêtes simultanées oui j'avais lu un test dessus, pour IE et firefox c'est 2 simultanées me semble t'il, opéra pouvant en exécuter 4 à la fois.
    En fait, tu peux changer cette limite sur les navigateurs (dans le about:config de FF notamment) mais il y a une seconde limite coté serveur (heureusement ).

    Pour ton problème Bovino a raison, essaie de mettre tout le code dans ta fonction creerRequete avec en parametre l'url ('http://mapage.asp?aleat=' +Math.random()) et la div de retour ('mondiv') et de déclarer la var requete uniquement dans cette fonction

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Par défaut
    merci à toi Bovino, tu as résolu mon casse-tête
    personnellement j'ai une seule fonction JS mais elle est appelée trois fois simultanément
    en ajoutant var devant la définition de mon objet ajax mes sorties ne se mélangent plus

Discussions similaires

  1. [Débutant] Execution de plusieurs requetes SQL
    Par guigui69 dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/10/2016, 13h37
  2. [AC-2013] Programmer une execution de plusieurs requetes sql suivant certaines conditions
    Par JRTConcept dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/01/2015, 22h20
  3. Réponses: 8
    Dernier message: 11/08/2010, 15h49
  4. [AJAX] Comment gérer plusieurs requetes?
    Par Cervantes dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/02/2009, 18h06
  5. [MySQL] Plusieurs requetes simultanées
    Par nicoalafac dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/01/2007, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo