IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Comment recuperer des variable


Sujet :

JavaScript

  1. #21
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    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?

  2. #22
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    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.

  3. #23
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    Citation Envoyé par frodum
    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?
    mon serveur est distant => lorsque je debranche mon cable reseau, la deconnection n'est pas detectée.
    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) ?

  4. #24
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    Citation Envoyé par frodum
    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.
    => comment ferrais tu ça ? ... mes connaissances en js sont très faibles
    => 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 ...

  5. #25
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    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...

  6. #26
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Bon j'ai testé vite fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var toto = fichier_json+"?cpt="+num_refresh1;
    http_request.open("GET", toto, true);
    Ca semble fonctionner. Tiens moi au courant.

  7. #27
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    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)

  8. #28
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    Citation Envoyé par frodum
    Bon j'ai testé vite fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var toto = fichier_json+"?cpt="+num_refresh1;
    http_request.open("GET", toto, true);
    Ca semble fonctionner. Tiens moi au courant.
    => ça marche pas : chez moi, la page ne se charge plus du tout ...

  9. #29
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Essaie d'afficher toto et de tester l'url dans IE.
    Ca ne marche plus suite a la manip pour modifier l'url?

  10. #30
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Emcy
    maintenant, comment faire pour le feinter ?
    Deux solutions:

    Soit le contournement:
    http://javascript.developpez.com/faq...#navig.nocache

    Soit les headers HTTP (exemple PHP):
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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....

  11. #31
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    Citation Envoyé par denisC
    Soit les headers HTTP (exemple PHP):
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    je le mets ou ce code (je suis debutant) ?

    Ca ne marche plus suite a la manip pour modifier l'url?
    => oui : ça doit venir que le micro-controlleur ne doit pas trop aimer ce genre d'adresse (je suppose)...

  12. #32
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Emcy
    je le mets ou ce code (je suis debutant) ?
    En PHP, au début du fichier. En cgi, aucune idée

  13. #33
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    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 ?

  14. #34
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Emcy
    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).
    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....

  15. #35
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 55
    Points : 38
    Points
    38
    Par défaut
    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 ?

  16. #36
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Emcy38
    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é

  17. #37
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 55
    Points : 38
    Points
    38
    Par défaut
    ...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 ...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    => il faut que je regarde lundi ce que ça donne..

  18. #38
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    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 ?
    Non.

    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.

  19. #39
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    j'ai essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    => ç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 ?) ?


    j'ai fait un test en utilisant juste des frames :

    fichier index.html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    fichier status.cgi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    => et là, les valeurs sont bien mises à jours sous IE.
    Peut-être que ça vous donnera des idées .....

  20. #40
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Emcy
    => ç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 ?) ?
    COmmence pas ça:
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/10/2007, 12h44
  2. Réponses: 4
    Dernier message: 29/03/2007, 17h06
  3. Réponses: 2
    Dernier message: 28/11/2006, 15h20
  4. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40
  5. Réponses: 4
    Dernier message: 18/07/2002, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo