Mise à jour d'une image bloquée par le cache du navigateur

csi_bern Messages postés 72 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai mis en place la possibilité de modifier l'image d'un utilisateur via une requête AJAX. Ceci fonctionne bien si ce n'est que la nouvelle image n'est pas afficher avant qu'on aille manuellement effacer le cache du navigateur.

Comment puis-je contourner le problème ? Mes recherches m'ont emmené à évaluer la possibilité d'utiliser un timestamp sur mes ressources, mais je ne sais pas comment faire cela.

Auriez-vous une solution ?

Merci d'avance

4 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Sans voir ton code.. difficile de te répondre.
    Mais normalement, si tu changes le nom de l'image à afficher, normalement elle devrait se charger à la place de l'autre sans que le cache n'intervienne....

    0
  2. csi_bern Messages postés 72 Statut Membre 2
     
    Hello,

    La réponse est simple il est vrai. Mais n'y a-t-il pas une possibilité de garder le nom de fichier, car toute la plateforme est basée sur le nom de l'utilisateur pour les photos (nom_utilisateur.jpg), du coup, je devrais changer la structure de la base de données, ses inscriptions et ses appels...

    Mais ça sera peut-être plus simple qu'un changement du cache.

    Merci en tout cas
    0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    
    
    
    0
  4. csi_bern Messages postés 72 Statut Membre 2
     
    Salut Jordane,

    Merci pour ta réponse. J'ai remarqué que ce code ne fonctionnait pas s'il est lancé depuis la requête Ajax. Cependant, les lignes suivante dans le document mère fonctionne (demande cependant de relancer la page :

    	<meta http-equiv="Cache-control" content="no-store, no-cache">
    	<meta http-equiv="Pragma" content="no-cache">
    


    Si vous avez d'autres solutions, je les prends volontiers
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       

      J'ai remarqué que ce code ne fonctionnait pas s'il est lancé depuis la requête Aja

      Ah, tu fais de l'ajax ...
      Et bien, pour l'ajax il existe également un paramètre permettant d'indiquer si tu veux du cache ou non

      par exemple, si fais de l'ajax en jquery
      $.ajax({url: "myurl", success: myCallback, cache: false});
      
      0