Accueil > Forum > > > > Pb AJAX sous IE
Pb AJAX sous IE
vendredi 17 novembre 2006 à 10:41:39 |
Pb AJAX sous IE

Emcy
|
bonjour,
j'ai créé un mini projet où j'ai 3 fichiers : - 1 fichier html : pour affichier ma page - 1 fichier javascript : script lié à ma page html - 1 fichier cgi (mis à jour dynamiquement par le serveur en interne) : il contient des variables parsée en JSON
=> j'affiche ma page HTML et j'utilise en script (AJAX) qui se lance toutes les 5secondes et qui va chercher dans le fichier cgi mes variables pour les afficher
tout fonctionne bien sous FireFox mais je ne sais pas pourquoi, sous IE (6 et 7) la page met les variables a jour au demarrage une fois puis ne le fait plus => le probleme est que sous IE je rentre toutes les 5s dans la boucle
if
(http_request.status == 200)
même si mon cable reseau est debranché !!???!!
voici mon projet : http://cjoint.com/?lqrVZsvbxE
voila le code si vous preferez ne pas telecharger le fichier :
fichier Index.html : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> <script type="text/javascript" src="RecupereVariables.js"></script> </head> <body onload="fonction_start()"> <!-- <body> --> <noscript> La page ne peut pas être affichée correctement car Javascript n'est pas activé</noscript> <span style="cursor: pointer; text-decoration: underline;" onclick="fonction_start()"> Lancer la requete </span> <p>Etat Communication : <span id="ComStatus">?</span></p> <p>Etat refresh1 : <span id="refresh1">?</span></p> <p>Etat refresh2 : <span id="refresh2">?</span></p> <p>SerialNumber : <span id="SerialNumber">?</span></p> <p>Temperature : <span id="Temperature">?</span>°C</p> <p>Batterie : <span id="Batterie">?</span>V</p> <p>UpTime : <span id="UpTime">?</span></p> <p>Tempo : <span id="Tempo">?</span></p> <p>Optic1 : <span id="Optic1">?</span></p> <p>Optic2 : <span id="Optic2">?</span></p> <p>Optic3 : <span id="Optic3">?</span></p> <p>PowerON1 : <span id="PowerON1">?</span></p> <p>PowerON2 : <span id="PowerON2">?</span></p> <p>PowerON3 : <span id="PowerON3">?</span></p> <p>ReveilEnb1 : <span id="ReveilEnb1">?</span></p> <p>ReveilEnb2 : <span id="ReveilEnb2">?</span></p> <p>ReveilEnb3 : <span id="ReveilEnb3">?</span></p> </body> </html>
fichier RecupereVariables.js :
var fichier_json = "./data.cgi"; var http_request = false; var num_refresh1 = 0; var num_refresh2 = 0; var num_connection = 1; var num_connectionbefore = 0; var num_connectionOK = 0;
function fonction_start() { num_connectionOK = 1; makeRequest(); setInterval(function(){makeRequest();},5000); // boucle toutes les 5s }
function makeRequest() { http_request = false; num_refresh1++; document.getElementById("refresh1").innerHTML = num_refresh1; // detection de connection /*if (num_connectionbefore == num_connection) { document.getElementById("ComStatus").innerHTML = "OFF"; } else { document.getElementById("ComStatus").innerHTML = "ON"; } num_connectionbefore = num_connection;*/ if (num_connectionOK == 1) { document.getElementById("ComStatus").innerHTML = "ON"; } else { document.getElementById("ComStatus").innerHTML = "OFF"; } num_connectionOK = 0; http_request = getXhr(); http_request.onreadystatechange = request_execute; http_request.open("GET", fichier_json, true); http_request.send(null); }
function getXhr() { var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; }
function request_execute() { //alert("execution de la fonction"); //alert(http_request.status); if (http_request.readyState == 4) { if (http_request.status == 200) // page trouvée { eval(http_request.responseText); num_connectionOK = 1; document.getElementById("ComStatus").innerHTML = "ON"; num_refresh2++; num_connection++; document.getElementById("refresh2").innerHTML = num_refresh2; document.getElementById("SerialNumber").innerHTML = JSONvariables.SerialNumber; document.getElementById("Temperature").innerHTML = JSONvariables.Temperature; document.getElementById("Batterie").innerHTML = JSONvariables.Batterie; document.getElementById("UpTime").innerHTML = JSONvariables.UpTime; document.getElementById("Tempo").innerHTML = JSONvariables.Tempo; document.getElementById("Optic1").innerHTML = JSONvariables.Optic1; document.getElementById("Optic2").innerHTML = JSONvariables.Optic2; document.getElementById("Optic3").innerHTML = JSONvariables.Optic3; document.getElementById("PowerON1").innerHTML = JSONvariables.PowerON1; document.getElementById("PowerON2").innerHTML = JSONvariables.PowerON2; document.getElementById("PowerON3").innerHTML = JSONvariables.PowerON3; document.getElementById("ReveilEnb1").innerHTML = JSONvariables.ReveilEnb1; document.getElementById("ReveilEnb2").innerHTML = JSONvariables.ReveilEnb2; document.getElementById("ReveilEnb3").innerHTML = JSONvariables.ReveilEnb3; } else if (http_request.status == 404){ // page non trouvée document.getElementById("ComStatus").innerHTML = "OFF"; } } }
fichier data.cgi : var JSONvariables = { "SerialNumber": "%30", "Temperature": "%31", "Batterie": "%32", "UpTime": "%34", "Tempo": "%33", "Optic1": "%21", "Optic2": "%22", "Optic3": "%23", "PowerON1": "%24", "PowerON2": "%25", "PowerON3": "%26", "ReveilEnb1": "%27", "ReveilEnb2": "%28", "ReveilEnb3": "%29" }
|
|
vendredi 17 novembre 2006 à 13:35:52 |
Re : Pb AJAX sous IE

syndrael
|
tu peux tester avec un 'delete http_request ' à la fin de ton request_execute ?
J'aime bien effacer des variables kan elles servent plus..
S.
|
|
vendredi 17 novembre 2006 à 16:12:11 |
Re : Pb AJAX sous IE

Emcy
|
ça change rien
sous IE7, j'ai fait "outils" => "options internet" => "parametres
(hystorique de navigation)" => dans "vérifier s'il existe une
version plus recente...", j'ai coché le bouton "a chaque visite de
cette page web" (avant, c'etait sur automatique)
et la ça marche => c'est donc un probleme de mise en cache du fichier cgi ce qui empeche de le recharger a chaque appel
maintenant, comment faire pour le feinter ?
|
|
vendredi 17 novembre 2006 à 17:14:30 |
Re : Pb AJAX sous IE
|
vendredi 17 novembre 2006 à 22:00:12 |
Re : Pb AJAX sous IE

rubiks10
|
Salut
En fait je ne comprends pas trop ton problème car moi sous firefox ou sur IE la requete ajax se lance bien toute les 5 secondes et la variable refresh s'incrémente bien sur la page sur les 2 navigateurs. Donc peux tu mieux expliquer ton problème stp??
Par contre j'ai voulu vérifier quelque chose en lancant la page et en modifiant moi meme les données dans la variables JSON et par contre sur aucun navigateur les données sont mise à jour quand je les modifie comme si c'était le serveur qui le faisait.
voila
-- The Rubik's Man --
|
|
lundi 20 novembre 2006 à 08:46:51 |
Re : Pb AJAX sous IE

Emcy
|
J'ai bien la variable refresh qui fonctionne : le probleme est que si je change une valeur de variable dans le fichier cgi pendant l'execution du script, elle n'est pas mise à jour => je suis sure que c'est un probleme que IE mets le fichier en cache (je n'ai pas le probleme sous Firefox : par defaut, il doit être configuré differemment) => j'ai trouvé sur le net des personne qui avaient le même type de probleme : il modifiaient l'URL de façon a avoir un nom unique a chaque envoie en rajoutant un nombre aléatoire mais ça ne marche pas avec serveur qui est en fait un micro-controlleur (il n'accepte pas ce genre d'ecriture à priori : j'ai plus rien qui s'affiche)
var toto = fichier_json+"?cpt="+num_refresh1;
|
|
lundi 20 novembre 2006 à 11:42:31 |
Re : Pb AJAX sous IE

rubiks10
|
Oui effectivement moi aussi j'utilise cette méthode pour les images sous IE car sous firefox j'ai pas le problème
Mais avec ton code sous Firefox j'ai également le meme problème que sous IE.
Je vais essayer des hacks et je te tiens au courant
-- The Rubik's Man --
|
|
lundi 20 novembre 2006 à 15:22:10 |
Re : Pb AJAX sous IE

Emcy
|
alors, tu ne trouve pas ? :( ... moi, je patauge complet dans la semoule ....
|
|
lundi 20 novembre 2006 à 18:30:06 |
Re : Pb AJAX sous IE

PetoleTeam
|
B
onjour...
as tu essayé avec les balises meta...
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <META HTTP-EQUIV="REFRESH" CONTENT="5"> à la place de setInterval...
;0)
|
|
mardi 21 novembre 2006 à 09:04:51 |
Re : Pb AJAX sous IE

Emcy
|
cette solution ne va pas (il me semble) : c'est pas une page web que je charge mais un fichier texte
|
|
Cette discussion est classée dans : document, num, getelementbyid, innerhtml, jsonvariables
Répondre à ce message
Sujets en rapport avec ce message
pb de getElementById [ par kidpigeyre ]
for(var i=0;i { document.getElementById("tete")[i].innerHTML=document.getElementById("tete")[i].innerHTML.substr(0,3); }voila ça ça ne ma
obj.innerHTML [ par fgingat ]
Bonjour à tous .. Voila mon premier poste concerne un soucis de comprehension de la methode de fonctionnement de obj.innerHTML A savoir sur une page
Problème avec la fonction switch [ par stiml ]
Bonjour, Je sais qu'on a posté plusieurs questions sur ce sujet mais je n'est pas trouvée ma réponseMerci de m'éclairer sur cette fonction qui ne fonc
couleur, radiobutton, onclick [ par gabs77 ]
slt, j'ai un souci avec mon formulairej'ai un formulaire de base auquel j'ai des formulaires spécifiques par rapport a des choix effectuer dans ce for
document.body vs document.write [ par arnaultp ]
Bonjour à tous!Je n'arrive toujours pas très bien à comprendre ce que font document.body et document.write.Cela fait seulement 2 semaines que je code
Probleme avec IE [ par theopil ]
Voila sous firefox sa marche niquel , mes pas sous IE , et j tourne en rond et je ne trouve pas l'erreurfunction affi
Javascript et IE 6 ou 7 [ par memento59800900 ]
Bonsoir à toutes et à tous !J'ai créé une page web (entre autres) pour mon boulot sous firefox, et seule une partie du javascript fonctionne.Je pense
Barre de progression Javascript [ par AurelR ]
BonjourActuellement j'essaye d'envoyer un fichier sur mon serveur (sa j'y arrive) mais j'aimerais afficher une barre de progression.En cherchant un pe
Faire un bouton pour supprimer des input dynamique (removeChild) [ par hAdEsS ]
Bonjour à tous,j'ai trouvé un petit scrit qui me permet d'ajouter des inputs à mon formulaire.Actuelement un lien est généré à coté des input créés.To
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|