Bonjour,
Lorsque dans une page, par javascript, je fais 4 appels ajax simultanés vers des pages spip, avec mozilla, SPIP répond "site en travaux", ce qui veut en fait dire que le lien SQL est mort.

Cela dure 20 secondes et après cela remarche. Il n'y a aucun problème si un seul appel ajax à la fois, et tout fonctionne très bien sous IE...

Une idée d'explication ?

Voir exemple : http://www.ethnoclic.net/spip.php?pa...id_rubrique=88

Le script 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
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
function getXMLHTTP(){
var xhreq=null;
if(window.XMLHttpRequest){ // Firefox et autres
xhreq = new XMLHttpRequest();
}
else if(window.ActiveXObject){ // Internet Explorer
try {
xhreq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xhreq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e1) {
xhreq = null;
}
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
}
return xhreq;
}
 
 
 
function charge_ajax(element,url_contenu)
{
 if (document.getElementById(element) != null )
  {
    var xhr = getXMLHTTP() ;
 
    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
                 document.getElementById(element).innerHTML = xhr.responseText;
              else
                 document.getElementById(element).innerHTML = "Error code " + xhr.status;
         }
         else
           document.getElementById(element).innerHTML = "<center><img src='/images/circle_animation.gif' align=center><br><i>Chargement...</i></center>" ;
    };
 
   xhr.open("GET", url_contenu, true);
   xhr.send(null);
  }
  else if (window.parent.document.getElementById(element) != null )
  {
     var xhr = getXMLHTTP() ;
 
    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
                 window.parent.document.getElementById(element).innerHTML = xhr.responseText;
              else
                 window.parent.document.getElementById(element).innerHTML = "Error code " + xhr.status;
         }
         else
           window.parent.document.getElementById(element).innerHTML = "<center><img src='/images/circle_animation.gif'><br><i>Chargement en cours...</i><br></center>" ;
    };
 
   xhr.open("GET", url_contenu, true);
   xhr.send(null);
  }
 
  else
   alert("zone inconnue !") ;
}