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