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] IE .. Peut etre probleme de cache ?


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 131
    Points : 95
    Points
    95
    Par défaut [AJAX] IE .. Peut etre probleme de cache ?
    Bonjour j'ai une page d accueil sur laquelle j'ai deux colonnes qui contiennent des DIVs voir image ci-dessous



    Lorsque je clique sur la box test5 puis sous la box nommée test4
    Et bien test5 vient ce mettre sous test4 comme vu sur l'image ci--dessous



    Lors de ce transfert je fait appel a un script qui réalise une requete dans la base de donnee afin de stocker les nouvelles coordonnées de la box nommée test5 ....

    et ainsi de suite pour les autres boxs de la gauche vers la droite .... et au final on doit obtenir ce resultat :



    Tous se passe bien sous FireFox cependant sous IE seul les coordonnées de la première box sont sauvegardées ... les autres bougent bien par une fonction javascript , et j appelle bien ma page pour modifier mes coordonnées mais rien ....

    Je pense que le problème viendrai d'une mise en cache sous IE :
    Il a la page en cache donc il la recupére mais du coup n'effectue pas mes requetes SQL ....


    Mon code est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
       var xhr = null;
       function getXhr(){
    	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; 
    	}
    }
    initialisation du xhr ci-dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function bougeDivBox(divElement,address){
                                   faireBougerMesDiv(): // fonction qui fait bouger les div visuellements su r la page
    				getXhr();
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						alert(xhr.responseText)
    						}
    					};
    				var tempSend = null;
    				xhr.open("GET",address,true);
    				xhr.send(tempSend);
     
    }
    Je pense vraiment que le soucis vient d un probleme de cache sous IE alors j ai essayé de rajouter dans mon code des choses du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       xhr.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.setRequestHeader("Cache-Control", "no-cache");
    	xhr.setRequestHeader("Connection", "close");
    Mais dans ce cas de figure plus rien ne fonctionne ni sous IE ni sous firefox !!!


    Merci pour votre aide car sa fait maintenant une semaine que je planche sur le sujet

    j'espere avoir ete le plus coomplet possible et dans le cas contraire je repondrai a vos questions

    LDC

  2. #2
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 131
    Points : 95
    Points
    95
    Par défaut
    Re,
    Le probleme est bien entendu palier en passant un parametre get aleatoire ...
    Mayios se que j aimerai c une solution qui m evite de faire ceci merci

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET",address+'?'+new Date(),true);
    ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    si appeler une url différente est une solution de contournement, j'étais arrivé à résoudre le pb via le serveur.
    En ASP (dans mon cas) en entete de ma page ASP :

    response.expires = -1
    response.AddHeader "Pragma", "no-cache"
    response.AddHeader "cache-control", "no-store"

    Alors que l'entete HTML correspondante, mise direcetment dans la page n'avait aucun effet sous IE, cela a résolu immédiatement le pb.

    La correspondance en PHP (attention, les valeurs proposés pour les même paramètres sont différentes)

    <?
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    ?>

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre habitué Avatar de Bobybx
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2005
    Messages : 122
    Points : 125
    Points
    125
    Par défaut
    Désolé ldcarpathes,
    je ne vais pas apporter de solution à ce souci puisque j'ai le même avec un affichage de valeurs sur le onchange d'un select qui fait appel à javascript.

    Si jamais il existe une autre solution que le paramètre aléatoire, je prends aussi.

    Merci.
    Have Fun

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Bobybx
    Si jamais il existe une autre solution que le paramètre aléatoire, je prends aussi.
    Ma réponse était aussi trop aléatoire ?


    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Membre habitué Avatar de Bobybx
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2005
    Messages : 122
    Points : 125
    Points
    125
    Par défaut

    Autant pour moi, je viens de tester le coup du header modifié et cela marche nickel.

    Merci
    Have Fun

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pear me pose peut etre un probleme.
    Par c_hristophe dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 09/12/2011, 11h05
  2. probleme connexion a mysql(driver peut etre)
    Par tifsa dans le forum Général Java
    Réponses: 7
    Dernier message: 30/12/2009, 14h56
  3. Peut etre probleme de session JSF/spring
    Par dimtoto dans le forum JSF
    Réponses: 2
    Dernier message: 15/08/2009, 11h43
  4. [AJAX] Probleme de cache
    Par BkD35 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/12/2006, 14h42
  5. Réponses: 1
    Dernier message: 11/08/2005, 01h26

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