Problème avec le cache du navigateur.

WRInaute accro
Hello !

Voila toutes les solutions que je connais pour (normalement) "rafraichir" le cache de manière à recharger les différents éléments de la page HTML (images, script .js, etc..):
Code:
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache, must-revalidate" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="last-modified" content="" />
<meta http-equiv="cache" Content="no store">

Seulement, je constate que ça ne fonctionne pas...
J'en est besoin lorsqu'il y a de gros changement de présentation par exemple, mais ça ne "rafraichi" pas et donc ne recharge pas les éléments comme voulu...

Il faut réactualiser la page depuis sont navigateur pour recharger les éléments...


Je ne sais donc pas comme cela ce fesse et ne sais pas comment faire autrement... :?

(test sous IE et FireFox en local et distant)

Une idée.. :?:
 
WRInaute discret
en php tu as cette facon

$CachePlus = "";
if (ereg("MSIE [56789]", (isset($HTTP_USER_AGENT)) ? $HTTP_USER_AGENT : getenv("HTTP_USER_AGENT"))) $CachePlus = ", pre-check=0, post-check=0, max-age=0";
$now = gmdate('D, d M Y H:i:s') . ' GMT';
header("Expires: $now");
header("Last-Modified: $now");
header("Cache-Control: no-cache, must-revalidate".$CachePlus);
header("Pragma: no-cache");
 
WRInaute accro
ça n'y change rien.. 8O

je deviens fou..
une question en faisant cela, même les images des css devraient être rechargées, non ?!...


mais j'avais aussi fait le test sur des <img src=""... même pb !
 
WRInaute accro
sureau a dit:
et quand tu fais un refresh ou que tu vide ton cache dans le navigateur, ça change?
oui : "Il faut réactualiser la page depuis sont navigateur pour recharger les éléments..."

edit: refresh non essayé, mais ce n'est pas une solution adaptée..
 
WRInaute accro
sureau a dit:
Et avec un un refresh en html
Code:
<meta http-equiv="refresh" content="1;URL=ton url">
thierry8 a dit:
edit: refresh non essayé, mais ce n'est pas une solution adaptée..

je ne veux pas passer par le refresh...ce n'est pas une bonne méthode.

autrement dit il n'y a aucun moyen fiable pour vider et rafraichir le cache du navigateur..
 
WRInaute occasionnel
Quelques script php utilisent ce type d'astuce pour eviter la mise en cache :

Code:
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past

Tu peux aussi t'inspirer de ces codes dont le 1er trouvé sur le script categorizator :

Code:
// Paramètres pour éviter la mise en cache ...
        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-store, no-cache, must-revalidate");
        header("Cache-Control: post-check=0, pre-check=0", false);
        header("Pragma: no-cache");

ou une variante :

Code:
<?
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");
?>


La feinte c'est header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
 
WRInaute accro
J'ai déjà tout testé, mais l'image que je supprime est toujours présente (à cause du cache nav.) !

pfff..merdique l'affaire !
 
WRInaute discret
Oui, j'ai eu le même problème (lors du renommage de fichiers). La seule parade que j'ai réussi à trouver est en faisant un refresh html, ou passez par une page transitoir (l'uload a bien eu lieu, vous allez etre redirigé etc...)
 
WRInaute passionné
dans le cas d'une image qui se modifie souvent il faut l'appeler avec un nom différent : nom.jpg?var=$var ou $var est un nombre aléatoire et ainsi le navigateur ira toujours recharger l'image depuis le serveur.
 
WRInaute accro
sous firefox -> "shift f5" :)
pour tes visiteurs -> problème si ils ne font pas shift f5 :)

je ne suis pas sur que le meta refresh fonctionne tout le temps
 
Nouveau WRInaute
Je sais pas si ya eu d'autres solutions depuis mais voilà une solution que j'ai trouvée après avoir essayé je ne sais combien de choses :evil: !!

Code:
<meta http-equiv="Cache-Control" content="no-cache" max-age="1" must-revalidate>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache" content="no store">
<meta http-equiv="expires" content="0" /> 
<meta http-equiv="last-modified" content="" />

Ca a marché uniquement après avoir ajouté max-age="1".
Je sais pas si en enlevant d'autres paramètres ça marche qd-même mais là j'ai plus le courage de tester!

hop hop hop j'ai parlé trop vite! Ca a marché qeulques fois seulement 8O
 
Discussions similaires
Haut