par
131 » 13 févr. 2007, 12:30
Salut
Je me demandais s'il etait interessant pour faire un chat, ou une application en temps reel, de garder un socket http ouvert via xhmlhttprequest plutot que de spammer le serveur de micro requettes avec un intervalle ridicule.
J'ai donc une fonction php simple...
<?
$list=array('salut','tu','va','bien');
foreach($list as $msg){echo $msg;flush();usleep(750000);}
?>
Appellé via ajax
Code : Tout sélectionner
function http_lnk(method,url){
var lnk;
lnk=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
if(!lnk) return;
lnk.open(method,url+"?"+Math.random()); //mis en cache sinon
lnk.onreadystatechange = function(){
alert(lnk.readyState);
alert(lnk.responseText);
}
lnk.send(null);
}
http_lnk("get","serv.php");
Le résultat est Nickel sous Firefox 2 ...
Le probleme c'est qu'IE ne declenche onreadystatechange que lorsqu'il y a un "change" du "state", quand Firefox se contente de considerer un interval de temps.
Ma question : est il possible d'acceder aux headers, ou au responseText/responseXML quand le readystate est à 3 sous IE 7 ?
Salut
Je me demandais s'il etait interessant pour faire un chat, ou une application en temps reel, de garder un socket http ouvert via xhmlhttprequest plutot que de spammer le serveur de micro requettes avec un intervalle ridicule.
J'ai donc une fonction php simple...
[php]<?
$list=array('salut','tu','va','bien');
foreach($list as $msg){echo $msg;flush();usleep(750000);}
?>[/php]
Appellé via ajax[code]
function http_lnk(method,url){
var lnk;
lnk=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
if(!lnk) return;
lnk.open(method,url+"?"+Math.random()); //mis en cache sinon
lnk.onreadystatechange = function(){
alert(lnk.readyState);
alert(lnk.responseText);
}
lnk.send(null);
}
http_lnk("get","serv.php");[/code]
Le résultat est Nickel sous Firefox 2 ...
Le probleme c'est qu'IE ne declenche onreadystatechange que lorsqu'il y a un "change" du "state", quand Firefox se contente de considerer un interval de temps.
Ma question : est il possible d'acceder aux headers, ou au responseText/responseXML quand le readystate est à 3 sous IE 7 ?