|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
xdeslandes WRInaute impliqué

Inscrit le: 29 Déc 2004 Messages: 290 Localisation: La Chaize-le-Vicomte
|
Posté le : Mar Sep 26, 2006 14:35 Sujet du message: Feuilles css en cache ? |
|
|
Bonjour,
il me semble qu'une feuille de style externe (.css donc) n'est chargée qu'une fois par le navigateur client. Mais le problème, c'est que si'lon vient à laz modifier, le client ne verra pas les effets de cette nouvelle feuille, car son navigateur utilisera l'ancien.
Je me trompe ? Comment éviter de demander à l'internaute d'actualiser sa page ? |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12363 Localisation: Toulouse
|
Posté le : Mar Sep 26, 2006 14:39 Sujet du message: Feuilles css en cache ? |
|
|
| un moyen fiable à 100% est de la renommer (ie n'en fait qu'à sa tête) |
|
| |
|
 |
sureau WRInaute occasionnel

Inscrit le: 07 Mar 2005 Messages: 191 Localisation: annecy
|
Posté le : Mar Sep 26, 2006 14:51 Sujet du message: Feuilles css en cache ? |
|
|
Tu peux faire style d'en appeler une autre en lui passant ds paramètres inutiles :
<link rel="stylesheet" type="text/css" href="images/style.css" />
puis
<link rel="stylesheet" type="text/css" href="images/style.css?12345" />
sur mon validateur xhml j ai pas d'erreures  |
|
| |
|
 |
xdeslandes WRInaute impliqué

Inscrit le: 29 Déc 2004 Messages: 290 Localisation: La Chaize-le-Vicomte
|
Posté le : Mar Sep 26, 2006 15:08 Sujet du message: Feuilles css en cache ? |
|
|
| Ca marche ça ??? Tu utilises une tolérance du navigateur, non ? |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12363 Localisation: Toulouse
|
Posté le : Mar Sep 26, 2006 15:14 Sujet du message: Feuilles css en cache ? |
|
|
je fais ça pour mes elements type flash qui sont jamais mis à jour ^^ je rajoute le timestamp au nom du fichier. par contre pour un css, il serait rechargé à chaque page. rajoutes-y l'heure ou un truc du style
par contre je rajoute aps en parametre mais bien dans le nom du fichier (ré-ecrit en rewriting) je ne sais pas si la méthode de passer en parametre est fiable ou non |
|
| |
|
 |
xdeslandes WRInaute impliqué

Inscrit le: 29 Déc 2004 Messages: 290 Localisation: La Chaize-le-Vicomte
|
Posté le : Mar Sep 26, 2006 15:23 Sujet du message: Feuilles css en cache ? |
|
|
Merci de vos précieux conseils, mais :
1- cela me parait bien compliqué, même rewrité. Tant qu'à renommer le fichier, autant appeler style1.css, puis style2.css pour la deuxième version, puis style3.css, etc, non ?
2- il n'existe pas d'instruction à donner au navigateur, genre balise meta ? ou une instruction php-unix style "lastmodified" ? |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12363 Localisation: Toulouse
|
Posté le : Mar Sep 26, 2006 16:33 Sujet du message: Feuilles css en cache ? |
|
|
moi ca me parait pas compliqué, t'appelles dans ton code osurce de la page style-<? echo timestamp() ?>.css
et dans ton htaccess :
rewrite style-(.+).css style.css
mais si tu veux changer son nom, oui aussi, ca permet d'alleger les hits de ton fichier |
|
| |
|
 |
sureau WRInaute occasionnel

Inscrit le: 07 Mar 2005 Messages: 191 Localisation: annecy
|
Posté le : Mar Sep 26, 2006 16:45 Sujet du message: Feuilles css en cache ? |
|
|
tu peux interdir le cache du navigateur, mais je suis pas sur que ca marche pour les css :
| Code: |
$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");
|
|
|
| |
|
 |
xdeslandes WRInaute impliqué

Inscrit le: 29 Déc 2004 Messages: 290 Localisation: La Chaize-le-Vicomte
|
Posté le : Mar Sep 26, 2006 17:42 Sujet du message: Feuilles css en cache ? |
|
|
Donc, e-kiwi, le navigateur croit qu'il y a un nouveau fichier style à charger, il fait donc une requête au serveur, mais ce dernier lui renvoie quand même style.css (qui a été éventuellement mis à jour entre temps).
Avec cela, je suis sûr que le navigateur rechargera style.css à fois qu'une page est chargée (i.e. chaque fois que le timestamp change, i.e.à chaque seconde serveur), mais cela diminue notablement le temps de chargement des pages, non ? |
|
| |
|
 |
thierry8 WRInaute accro

Inscrit le: 11 Juil 2005 Messages: 3252
|
Posté le : Mar Sep 26, 2006 18:11 Sujet du message: Feuilles css en cache ? |
|
|
| sureau a écrit: |
tu peux interdir le cache du navigateur, mais je suis pas sur que ca marche pour les css :
| Code: |
$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");
|
|
tu m'avais déjà donné cela mais ça ne fonctionne pas! |
|
| |
|
 |
guicara WRInaute accro

Inscrit le: 02 Fév 2006 Messages: 2109 Localisation: Dans nos montagnes...
|
Posté le : Mar Sep 26, 2006 19:28 Sujet du message: Feuilles css en cache ? |
|
|
| Hum... Sur sertaint forum utilisant des feuilles de syles (comme punbb), il y a des outils pour vider le cache, le client n'y vois que du feux, mais comment... ? |
|
| |
|
 |
Pandore WRInaute accro

Inscrit le: 14 Oct 2005 Messages: 1412 Localisation: Aix-Noulette (62)
|
Posté le : Mer Sep 27, 2006 18:39 Sujet du message: Feuilles css en cache ? |
|
|
| Tu veux dire qu'il y aurait une commande qui permettrait au chargement d'une page web de déclencher une purge du cache sur le disque dur du visiteur ??? |
|
| |
|
 |
| |
|
|