Bon bah j'ai test� sur un serveur qui tourne sur mon pc, cela fonctionne.
C'est quoi l'histoire du cable d�branch� ?
Ta un serveur "distant" ou ton serveur est sur ton pc?
Version imprimable
Bon bah j'ai test� sur un serveur qui tourne sur mon pc, cela fonctionne.
C'est quoi l'histoire du cable d�branch� ?
Ta un serveur "distant" ou ton serveur est sur ton pc?
IE doit mettre en cache le data.cgi.
Peut-�tre qu'il faudrait placer un random ou une date ds l'url menant au fichier data.cgi pour qu'il aille le chercher sur le serveur.
mon serveur est distant => lorsque je debranche mon cable reseau, la deconnection n'est pas detect�e.Citation:
Envoy� par frodum
j'ai essay� aussi avec un serveur local (easyPHP) mais m�me sous FireFox �a ne marche plus (AJAX ne fonctionne pas) => �a me semble bizarre que �a marche chez toi...
Tu as essay� de changer des valeurs de variable dans le fichier cgi pendant l'execution du script pour voir si les variables sont mise � jour (avec IE) (en prenant les fichiers que j'ai mis en telechargement) ?
=> comment ferrais tu �a ? ... mes connaissances en js sont tr�s faiblesCitation:
Envoy� par frodum
=> y a t-il un moyen de configurer IE pour l'obliger a ne pas mettre de fichier en cache ? c'est pour voir si �a vient de la ...
Bon attends lol, je t'avais pas compris. Je croyais que ton probl�me �tait d'afficher les variables dans la page HMTL. Donc mon "cela fonctionne" c'�tait pour �a lol.
Je faisais mes tests sous Firefox, donc je changeais les valeurs et c'�tait mis � jour dans la page HTML.
Maintenant pour cette probl�matique, je pense que IE met en cache le fichier, il faudrait ptet modifier l'url pour qu'il la recharche � nouveau. Je vais tester...
Bon j'ai test� vite fait :
Ca semble fonctionner. Tiens moi au courant.Code:
1
2 var toto = fichier_json+"?cpt="+num_refresh1; http_request.open("GET", toto, true);
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 bien un probleme de mise en cache : on est sur la bonne voie :)
maintenant, comment faire pour le feinter ?
remarque : mon serveur distant est en faite une carte electronique avec un microcontrolleur qui genere les pages => donc il ne doit pas y avoir de date de modification sur le fichier cgi (je suppose)
=> �a marche pas :( : chez moi, la page ne se charge plus du tout ...Citation:
Envoy� par frodum
Essaie d'afficher toto et de tester l'url dans IE.
Ca ne marche plus suite a la manip pour modifier l'url?
Deux solutions:Citation:
Envoy� par Emcy
Soit le contournement:
http://javascript.developpez.com/faq...#navig.nocache
Soit les headers HTTP (exemple PHP):
Code:
1
2
3
4
5 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // toujours modifié header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Pragma: no-cache"); // HTTP/1.0
La deuxi�me solution est bien entendue plus propre....
je le mets ou ce code (je suis debutant) ?Citation:
Envoy� par denisC
=> oui : �a doit venir que le micro-controlleur ne doit pas trop aimer ce genre d'adresse (je suppose)...Citation:
Ca ne marche plus suite a la manip pour modifier l'url?
En PHP, au d�but du fichier. En cgi, aucune id�e :?Citation:
Envoy� par Emcy
j'ai essay� la premiere methode et �a ne marche pas (j'ai plus rien qui s'affichie) => le �C ne doit pas trop appr�cier...
le fichier cgi est un fichier qui est trait� par un micro-controlleur en interne (c'est ce qui permet de mettre les variables � jour) => il n'a aucune influence sur le protocole de transmission => en fait lorsqu'on interroge le micro-controlleur, il nous renvoie un fichier .cgi qui est en fait un fichier .json (l'extention est .cgi mais le contenu est le m�me qu'un fichier .json : donc c'est du texte).
=> donc a priori il me faut le header pour un fichier .json : c'est peut �tre plus simple a trouver ?
Tu ne pourras pas mettre les headers directement dans le JSON. Il faut que ce soit ton serveur web qui les envoie avant le fichier JSON. Donc il faut probablement te pencher vers ton microcontrolleur. De toute fa�on, il semble que �a soit lui qui coince quelque part....Citation:
Envoy� par Emcy
et si je mets un header html avec une option nocache dans mon fichier cgi et qu'apr�s je fais un parser pour recuperer mes variables, c'est pas jouable ?
Non, d�sol� :aie:Citation:
Envoy� par Emcy38
...le probleme est que je ne peux pas modifier le fonctionnement du �C : une autre solution ? il y a pas une option dans AJAX qui permette de bloquer le cache ? il y a pas une solution en js qui permette de bloquer le cache ?
ah je viens de trouver un truc mais apparament �a ne marche pas sous FF (j'ai pas test� => peut �tre que sous FF2 �a machera ...) :
=> il faut que je regarde lundi ce que �a donne..Code:
1
2
3
4 objXMLHTTP.open("GET", "http://localhost/mon_app/mon_fichier.xml", false); objXMLHTTP.setRequestHeader("Cache-Control","no-cache"); objXMLHTTP.send(null); objXML = objXMLHTTP.responseXML;
Non.Citation:
Envoy� par Emcy38
JS utilise le cache du navigateur. Donc, il faut empecher les objets de ce mettre en cache niavigateur, soit en paramettrant correctement le navigateur, soit en envoyant les headers HTTP correct, ce qui peut se faire unique ment avec le serveur.
La seule solution JS est d'ajouter un param�tre al�atoire � la requete pour faire "comme si" c'�tait une autre requete � chaque fois.
j'ai essay� de faire :
=> �a marche pas. J'ai pas bien compris, c'est le serveur ou le client qui prend en compte le header que j'envoie (vous avez un lien qui explique comment sont trait�s les headers ?) ?Code:
1
2
3
4
5 http_request.open("GET", fichier_json, true); http_request.setRequestHeader("Cache-Control","no-cache"); http_request.setRequestHeader("Pragma","no-cache"); http_request.send(null);
j'ai fait un test en utilisant juste des frames :
fichier index.html:
fichier status.cgi :Code:
1
2
3
4
5
6
7
8
9
10
11 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>IFOTEC SUPERVISION</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> </HEAD> <FRAMESET rows="42%,58%" > <FRAME name="top" src="Header.html" marginheight=0 marginwidth=10> <FRAME name="left" src="Status.CGI" marginheight=0 marginwidth=10> </FRAMESET> </HTML>
=> et l�, les valeurs sont bien mises � jours sous IE.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE> </TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> <META HTTP-EQUIV="refresh" CONTENT="10"> </HEAD> <body> ......... affichage de mes variables </body> </html>
Peut-�tre que �a vous donnera des id�es .....
COmmence pas �a:Citation:
Envoy� par Emcy
http://php.developpez.com/faq/?page=...pts_entetehttp
http://mathieu-lemoine.developpez.co...iels/web/http/
Tu en sauras un peu plus sur les ententes :)