Transformer ce code en code asynchrone

Fermé
delmouly - Modifié par delmouly le 25/12/2010 à 17:40
 delmouly - 25 déc. 2010 à 20:21
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>

A voir également:

2 réponses

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..
0
up
0