Transformer ce code en code asynchrone

Bonjour,
j'ai un code ajax pour afficher des requêtes en live, mais le problème est qu'il sagit d'un code synchrone qui bloque les partie de page a chaque requêtes ce qui empêche d'écrire.
Je ne suis pas tres fort en javascript...

voilà le code

<script type="text/javascript">

function sendData(param, page)
{
if(document.all)
{

var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}
else
{

var XhrObj = new XMLHttpRequest();
}

var content = document.getElementById("conten");

XhrObj.open("POST", page);

XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}

XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}

function sendData2(param, page)
{
if(document.all)
{

var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}
else
{

var XhrObj = new XMLHttpRequest();
}

var content = document.getElementById("conten2");

XhrObj.open("POST", page);

XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}

XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}

</script>

<script type="text/javascript">

setTimeout("relance(); ",100);

function relance ()
{

document.getElementById('livemenu').innerHTML =file('requetemenu.php');

setTimeout("relance();",500);

}

function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
</script>

<div id="livemenu">

</div>

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. dsl pour le double post mais on ma dit de transformer

    function file(fichier)
    {
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    return(false);
    xhr_object.open("GET", fichier, false);
    xhr_object.send(null);
    if(xhr_object.readyState == 4) return(xhr_object.responseText);
    else return(false);
    }

    en

    function file(fichier)
    {
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    return(false);
    xhr_object.open("GET", fichier, true);
    xhr_object.send(null);
    if(xhr_object.readyState == 4) return(xhr_object.responseText);
    else return(false);
    }

    Mais sa me retourne false..