[AJAX] compatibilité ie
mitmit
-
J -
J -
bonjour !
j'ai un problème avec une fonction ajax utilisant un XMLHttpRequest qui est exécutée périodiquement sur mon site (generationsfm.com) et qui appelle un fichier php qui lit un fichier xml, en extrait les informations et rafraîchit l'affichage de ma page avec ces informations.
tout se passe bien sous firefox mais sous ie (pour changer :/) le rafraichissement n'est jamais fait, même en rafraichissant manuellement la page !! le seul moyen de mettre à jour l'affichage est de fermer le navigateur et de le relancer...
voici le fichier php qui est appelé :
et voici la fonction ajax qui l'appelle :
j'ai un problème avec une fonction ajax utilisant un XMLHttpRequest qui est exécutée périodiquement sur mon site (generationsfm.com) et qui appelle un fichier php qui lit un fichier xml, en extrait les informations et rafraîchit l'affichage de ma page avec ces informations.
tout se passe bien sous firefox mais sous ie (pour changer :/) le rafraichissement n'est jamais fait, même en rafraichissant manuellement la page !! le seul moyen de mettre à jour l'affichage est de fermer le navigateur et de le relancer...
voici le fichier php qui est appelé :
<?
switch ($_GET['act'])
{
case "track":
$handle = fopen("http://generationsfm.com/sms/Titres.xml", "r");
$stack = array();
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle, 4096);
$buffer=strip_tags($buffer);
array_push ($stack,$buffer);
}
fclose($handle);
}
echo $stack[3]."-".$stack[4];
break;
}
?>
et voici la fonction ajax qui l'appelle :
Configuration: Windows XP Firefox 2.0.0.3
2 réponses
-
dsl a la suite d'une fausse manip' le message a été coupé :/
donc la fonction ajax :<script language="JavaScript" type="text/javascript"> function getXhr() { var xhr = null; //firefox if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } //ie else if (window.ActiveXObject) { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } //non supporté else { alert("Fonction non supportée par le navigateur"); xhr = false; } return (xhr); } function getTrack() { var xhr = getXhr(); //on définit l'appel de la fonction au retour serveur xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var resultat = xhr.responseText; document.getElementById('div_track').innerHTML=resultat; } }; //on appelle le fichier reponse.txt xhr.open("GET","http://generationsfm.com/ajax_track.php?act=track",true); xhr.send(null); setTimeout("getTrack()", 5000); } window.onload=getTrack; </script>
voilà je ne sais vraiment pas pourquoi ie fait des siennes si quelqu'un a une idée ça m'arrangerait bien ^^
merci par avance
mitmit -
window.onload=getTrack()
signifie: la fonction s'execute au moment de chaque chargement de la fenetre
Enleves le "window.onload=" et avec seulement getTrack() ca marche aussi