Bonsoir,
J'ai un problème de requêtes AJAX simultanées. En fait, j'aimerais qu'elles soient simultanées mais elles ne le sont pas du tout bawling
Je bosse sur une application complexe, j'ai donc extrait le code qui pose problème (et j'ai testé ce code seul, en vain):
Code Javascript:
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 function getXhr(){ var xhr; if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { alert("Marche po!"); xhr = false; } return xhr; } function testAjax(){ var httpRequest1 = getXhr(); httpRequest1.overrideMimeType('text/plain'); httpRequest1.onreadystatechange = function() { if (httpRequest1.readyState == 4) alert("Fin requete 1"); }; httpRequest1.open('GET', "http://chemin/page.php", true); httpRequest1.send(null); var httpRequest2 = getXhr(); httpRequest2.overrideMimeType('text/plain'); httpRequest2.onreadystatechange = function() { if (httpRequest2.readyState == 4) alert("Fin requete 2"); }; httpRequest2.open('GET', "http://chemin/page.php", true); httpRequest2.send(null); }
La page PHP, appelée par les requêtes AJAX, met 5 secondes avant de répondre (sleep(5)). Ma fonction Javascript "testAjax()" est appelée simplement en cliquant sur un lien.
Comportement attendu (espéré!):
- Attente 5 secondes
- Affichage du premier "alert"
- Clic immédiat sur OK pour fermer le "alert"
- Affichage immédiat du second "alert"
Comportement constaté (IE6, IE7, FF2):
- Attente 5 secondes
- Affichage du premier "alert"
- Clic immédiat sur OK pour fermer le "alert"
- Attente 5 secondes (gr...)
- Affichage du second "alert"
Conclusion: Mes deux requêtes Ajax ne sont pas exécutées simultanément, alors que je pensais avoir fait le nécessaire pour que ce soit le cas... Ayant testé sur plusieurs navigateurs, et sur plusieurs machines, je pense que le problème ne vient pas d'un quelconque problème de configuration, mais bel et bien de mon code source...
Si quelqu'un pouvait m'aider, je lui en serais très reconnaissant lol
Merci !
Jibé
Partager