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 :

Firefox et la non utilisation du cache pour des images


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut Firefox et la non utilisation du cache pour des images
    Bonjour à tous,

    Pas facile de placer ce post dans le bon forum, j'espère que ça ira car la solution n'est peut être pas le javascript ...

    Je fais un chat en PHP/Ajax, j'y ai intégré des smileys (image en png) et j'ai fais un test et forcément j'ai fais plein de ligne avec des smileys qui sont donc rafraichies toutes les 1200ms ...
    sur IE tout va bien, on ne voit même pas le rafraichissement se faire.

    mais sur firefox apparement à chaque rafraichissement il recharge tous les smileys à partir du site et non de sa mémoire cache.

    J'ai essayer un script (Javascript) pour précharger les images, mais ça ne résout pas le problème !

    Donc si quelqu'un a une solution javascript ou pas ... un grand merci d'avance !

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut.
    Vérifies les options de Firefox et en particulier que tu ne sois pas en mode navigation privée.

  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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    ben fait déja un prelaod des images ...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    Merci pour vos réponses mais j'ai vérifié : je ne suis pas en navigation privée et comme je le disait dans mon premier post j'ai déjà mis un script pour préloader les images ...
    voici mon script de preload :

    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
    var TabV10m = new Array('smile.png','happy.png','wink.png','confused.png','neutral.png','lol.png','sad.png','omg.png','dizzy.png','cry.png','tongue.png','grim.png');
    var imgObjV10m = new Array(TabV10m.length);
    var loaded = 0;
     
    function imgLoaded()
    {
      loaded++;
      document.saisie.message.value += loaded;
    }
     
    function preloader() 
    {
      for (i=0; i<TabV10m.length; i++)
      {
    	imgObjV10m[i] = new Image();
    	imgObjV10m[i].onload = function(){imgLoaded()};
    	imgObjV10m[i].src = 'http://www.*****.com/images/smileys/'+TabV10m[i];
      }
    }
    Ca me retourne bien les 12 dans mon champ ...
    Je ne voit vraiment pas d'où peut venir ce problème !??

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Points : 491
    Points
    491
    Par défaut
    bizarre, j 'ai jamais eu de problème de cache avec ff et les images...

    une technique pour mettre en cache les images consiste à les écrire en dure dans une div, avec une position absolute et une visibilité à hidden.

    Je fais un chat en PHP/Ajax, j'y ai intégré des smileys (image en png) et j'ai fais un test et forcément j'ai fais plein de ligne avec des smileys qui sont donc rafraichies toutes les 1200ms ..
    Donc ton chat n'est pas fait en ajax, tu aurais pas ce problème sinon. Y a pas mal de chat ajax sur le web ...

  6. #6
    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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    sinon un htaccess au niveau du serveur ...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    Merci mais je ne vois pas pourquoi tu dis que mon chat n'est pas en Ajax

    sur ma page principale j'utilise une fonction qui fait appelle à un XMLHttpRequest cherchant un fichier php qui retourne le fichier texte ... même principe pour enregistrer un message bref si c'est pas de l'ajax, je ne vois pas ce que c'est ... !

    dans tout les cas mes images sont loader une première fois en dure vu qu'elle sont afficher dans la partie fixe, servant de lien pour insérer un smiley ...

    Euh ... un htaccess qui ferait quoi ? (suis pas une flèche avec les htaccess, désolé)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Points : 491
    Points
    491
    Par défaut
    Merci mais je ne vois pas pourquoi tu dis que mon chat n'est pas en Ajax

    sur ma page principale j'utilise une fonction qui fait appelle à un XMLHttpRequest cherchant un fichier php qui retourne le fichier texte ... même principe pour enregistrer un message bref si c'est pas de l'ajax, je ne vois pas ce que c'est ... !
    j'ai pas le code sous les mains moi ! j'ai juste supossé et lut tros vite .

    si toutes les images sont rafrachie, alors tu dois rafraichire l'ensemble de la conversation non?

    tu peux pas actualisé juste les nouveaux messages?

    sinon t'as essayé ca
    une technique pour mettre en cache les images consiste à les écrire en dure dans une div, avec une position absolute et une visibilité à hidden

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    Effectivement j'actualise tout le contenu du div contenant les messages ... il est possible d'ajouter juste les nouveaux messages dans la div sans tout recharger ? (je ne vois pas comment faire là ...)

    Mais même avec une seule ligne de message avec un seul smiley, il clignote !

    Oui j'ai essayé de les mettre en dure dans une div avec les paramètres que tu m'as donné, mais ça ne change rien ...

    J'ai testé sur un autre pc et ça bug pareil !!

    c'est vraiment byzarre comme bug !!

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    Voici mes bouts de code, j'espère que ça aidera quelqu'un pour m'aider ...
    Merci d'avance.

    Mon code javascript qui sert à lire le fichier texte :
    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
    function readMessages() {	
     
    	get_Xhr();
    	xhr.onreadystatechange = function() {
    		if(xhr.readyState == 4 && xhr.status == 200) {
    			div = document.getElementById("MessagesConteneur");
    			message = xhr.responseText;
    			div.innerHTML = unescape(message);
    			div.scrollTop = div.scrollHeight;
     
    		}
    	}
    	xhr.open("POST","contact_chat/readmess.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
     
    	action = "read";
    	xhr.send("idMembreChat="+idMembreSess);
     
    	if(connecte == true) { setTimeout('readMessages()',dur_refresh); }	
     
    }
    Mon code sur la page readmess.php :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?
    header('Content-Type: text/html; charset=ISO-8859-1');
     
    function replaceSmileys($message) {
    	$message = str_replace(":-)","<img src='images/smileys/smile.png' border='0' align='absmiddle' />", $message); 
    	$message = str_replace(":)","<img src='images/smileys/smile.png' border='0' align='absmiddle' />", $message); 
     
    	......
     
    	return $message;
    }
     
    $file = "data.txt";
    $nbmaxmess = 60;
     
    $tableau=file($file);
    $nbr_msg = count($tableau);
     
    $i = 0;
    $total_to_read = ($nbr_msg > $nbmaxmess) ? $nbmaxmess : $nbr_msg;
     
    while($i < $total_to_read)
    {
      $tmp = explode('<--§-->',$tableau[$i]);
      $log_color = $tmp[4];
      if(!$log_color) $log_color = "000000";
     
      $time_msg = $tmp[0];
      $auteur = htmlspecialchars($tmp[1]);
      $message = htmlspecialchars($tmp[2]);
      $message = replaceSmileys($message);
      $txt_color = $tmp[3];
     
      $data .= '<div class="cellLibre" style="width:600px; margin-top:2px;"><span class="spanDate">'.$time_msg.'</span> <span class="spanSepar">|</span> <span class="spanAuteur" style="color:#'.$log_color.';">'.$auteur.'</span> <span class="spanFleche">&gt;</span> <span style="color:#'.$txt_color.';">'.$message.'</div>';
      $i++;
    }
     
     
    echo $data;
     
     
    ?>

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    Je me sens très con là ! je penses avoir trouver mon problème et ça n'a rien avoir avec le code ...

    En fait j'ai tellement l'habitude de rafraichir mes pages lors de leur conception en faisant CTRL+F5 du coup ça recharge les nouvelles images sans utilisé le cache ... et ce que je ne savais pas c'est que Firefox garde cette "non mise en cache" même pour les appels Ajax ...

    Mon problème venait de là ! Désolé pour vous avoir fait perdre votre temps, j'en ai perdu pas mal aussi avec les moult tests !!!

    Encore merci d'avoir supporter Joe le boulet !!!

    Par contre mon code pourra peut être servir, il fonctionne en fait !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/10/2010, 16h04
  2. non mise en cache pour script javascript ?
    Par junior68 dans le forum Débuter
    Réponses: 3
    Dernier message: 28/05/2009, 09h57
  3. [ASP.NET] Non mise en cache d'une image
    Par Azephel dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/09/2007, 12h36
  4. Réponses: 4
    Dernier message: 09/02/2006, 17h44
  5. Réponses: 3
    Dernier message: 29/10/2005, 14h13

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