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

csi_bern Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 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
A voir également:

4 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
NB: A lire AVANT de nous partager ton code :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
0
csi_bern Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
csi_bern Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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