[AJAX] Ajax, mozilla et SPIP
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:
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 !") ;
} |