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

JavaScript Discussion :

[AJAX] Enchainer plusieurs requêtes avec Ajax


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 56
    Points : 44
    Points
    44
    Par défaut [AJAX] Enchainer plusieurs requêtes avec Ajax
    Bonjour à tous,

    Voila j'ai un petit souci de lourdeur de code.

    En cliquant sur un bouton de mon site, il y a une série d'appel à différents fichiers PHP grâce à AJAX afin de mettre à jour différentes parties de la page.

    Il me faut obligatoire respecter l'ordre d'appel de ces fichiers, j'ai donc fait un un script mais qui me semble très lourd, avez vous une idée pour simplifier un tel script, c'est à dire enchainer différents appels les uns après les autres dans l'ordre voulu :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    	var xhr_object = http_request_object();	
    	xhr_object.open('POST', 'fichier.php', true);
    	xhr_object.onreadystatechange = function()
    	{
    		if ( xhr_object.readyState == 4 ) 
    		{
    			document.getElementById('zone1').innerHTML = xhr_object.responseText;
     
    			var xhr_object2 = http_request_object();	
    			xhr_object2.open('POST', 'fichier.php', true);
    			xhr_object2.onreadystatechange = function()
    			{
    				if ( xhr_object2.readyState == 4 ) 
    				{
    					document.getElementById('zone2').innerHTML = xhr_object2.responseText;
     
    					var xhr_object3 = http_request_object();	
    					xhr_object3.open('POST', 'fichier.php', true);
    					xhr_object3.onreadystatechange = function()
    					{
    						if ( xhr_object3.readyState == 4 ) 
    						{
    							document.getElementById('zone3').innerHTML = xhr_object3.responseText;
     
    							var xhr_object4 = http_request_object();	
    							xhr_object4.open('POST', 'fichier.php', true);
    							xhr_object4.onreadystatechange = function()
    							{
    								if ( xhr_object4.readyState == 4 ) 
    								{
    									document.getElementById('zone4').innerHTML = xhr_object4.responseText;
    								}
    							}
    							xhr_object4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
    							data4 = 'var=...';
    							xhr_object4.send(data4);	
     
    						}
    					}
    					xhr_object3.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
    					data3 = 'var=...';
    					xhr_object3.send(data3);	
     
    				}
    			}
    			xhr_object2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
    			data2 = 'var=...';
    			xhr_object2.send(data2);	
     
    		}
    	}
    	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
    	data = 'var=...';
    	xhr_object.send(data);
    Merci pour votre aide

  2. #2
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    Salut

    Ton code ne me parait pas "lourd" dans le sens ou tu utilises la fonction onreadystatechange. Vu que c'est asynchrone, l'utilisateur ne sera pas "ralenti" dans sa course ni même son navigateur par contre il faut faire en sorte que le déroulement de tes requêtes soit bien visible (genre tu fais afficher un petit div dans un coin de l'écran -comme google- marqué "Chargement..." ou "Mise a jour des données...", mieux tu fais une barre de chargement) afin que l'utilisateur sache qu'il peut y avoir quelques secondes de traitement.
    Enfin ça c'est mon principe....

    Tchaw'
    Développeur Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/12/2013, 18h57
  2. Réponses: 2
    Dernier message: 12/07/2011, 10h57
  3. Réponses: 2
    Dernier message: 23/05/2010, 17h29
  4. [Prototype] Ajax.request => Plusieurs requêtes à la suite
    Par Jonathan.b dans le forum Bibliothèques & Frameworks
    Réponses: 17
    Dernier message: 29/11/2007, 14h24
  5. [AJAX] Appel de plusieurs pages avec Ajax
    Par shadowbob dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 13/02/2006, 18h29

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