interdire mise en cache css - PHP - Programmation
Marsh Posté le 05-07-2007 à 14:28:54
ReplyMarsh Posté le 05-07-2007 à 16:12:40
Mitch2Pain a écrit : J'en ai parlé a des potes developpeurs ils hallucinent completement ... |
Vu ton post, ça ne m'étonne pas, c'est tout simplement n'importe quoi
Plutôt que d'essayer d'"interdire" la mise en cache - ce qui est impossible puisque le cache est géré par le navigateur du client ; au mieux tu peux lui donner des recommandations qu'il n'est pas obligé de respecter - tu ferais mieux de répondre à la question : "mais pourquoi j'ai besoin de rechercher ma page pour que le css s'applique ??" Corrige ça, et tu n'auras pas besoin de faire un gruikage pareil.
Marsh Posté le 06-07-2007 à 17:03:08
Pas inutile d'interdire la mise en cache dans le navigateur.
Pour celà une technique très simple consiste à créer un fichier php.
<?php
header("Content-type: text/css" );
session_start();
$SID = $_get['x'];
if($SID == $_Session['Sid']);
{
$fff = "#fff";
$000 = "#000";
$txtfont = "Arial";
$txtsize = "12px";
$txtcolor = "#000";
$nosessionfound = "none";
}
else
{
$nosessionfound = "block";
}
?>
body { background: <?=$fff;?> }
.nosession { display: <?=$nosessionfound;?> }
etc...
___________________________________
Et dans ton index tu marques :
<?php
session_start();
$_SESSION['SID'] = rand(1000,999999)*rand(1000,9999);
$SID = $_SESSION['SID'];
?>
<link blabla(me souviens plus) src="style.php?x=<?=$SID;?>">
<body>
<div class="nosession">Aucune session, bizzare </div>
Bon maintenant faut que ça ait un intérêt (en gros seul pour les "gros sites" réactualisés 15 fois par jour).
Marsh Posté le 06-07-2007 à 17:12:18
J'aimerais bien connaitre l'intérêt d'interdire la mise en cache ? Et plus encore celui du CSS. Si quelqu'un pouvait m'éclairer. Merci d'avance.
Marsh Posté le 06-07-2007 à 17:28:02
Et sérieusement parfois la mise en cache peut générer pas mal de souci, bon j'ai la flemme de trouver des exemples
Marsh Posté le 06-07-2007 à 17:45:52
C'est le concours de celui qui sortira la plus grosse annerie ou quoi ?
Mxtrem a écrit : Y'en a qui s'en tappent de la bdp |
Trouve moi un seul site serieux qui s'en tape de sa bp et on en reparle.
Mxtrem a écrit : Et sérieusement parfois la mise en cache peut générer pas mal de souci, bon j'ai la flemme de trouver des exemples |
Bah reviens quand t'en auras trouvé, histoire de discuter sur un problème concret.
Marsh Posté le 06-07-2007 à 17:56:12
LoL Les gars, please, Peace and Love
N'allez point vous taper sur la tête pour une histoire de mise en cache
Marsh Posté le 09-07-2007 à 10:13:44
C'est une petite interface utilisée uniquement en interne et rarement par plus d'une personne à la fois donc je confirme: La BP osef !
L'interêt d'interdire la mise en cache c'est que le fichier css ne s'applique à ma page qu'au moment où il le charge (donc au 1er clic dans l'appli). Une fois le css en cache il ne s'applique plus et mes pages sont toutes moches sauf si je fait F5...
Marsh Posté le 09-07-2007 à 10:50:55
echo( '<LINK rel="stylesheet" href="styletest.css?' . time() . '" TYPE="text/css">' );
Marsh Posté le 09-07-2007 à 10:53:01
Ah donc si je comprend bien, tu as mal codé tes interfaces et maintenant tu veux interdire la mise en cache parce que c'est pas beau. Je comprend mieux
Marsh Posté le 09-07-2007 à 10:55:57
AlphaZone a écrit : Ah donc si je comprend bien, tu as mal codé tes interfaces et maintenant tu veux interdire la mise en cache parce que c'est pas beau. Je comprend mieux |
Disons que j'ai codé efficace en mettant des balises sur mes différents niveaux de titre et messages et j'ai fait un CSS après pour le design.
Marsh Posté le 09-07-2007 à 10:58:16
Mara's dad a écrit : echo( '<LINK rel="stylesheet" href="styletest.css?' . time() . '" TYPE="text/css">' ); |
DOUX JESUS, ça marche !!
Grand Merci :-D
Marsh Posté le 09-07-2007 à 11:02:22
Mitch2Pain a écrit : DOUX JESUS, ça marche !! |
J'ai souvent le problème avec les .js et .css sur les serveurs de dev, ou lors de la livraison d'une nouvelle version.
Marsh Posté le 09-07-2007 à 11:11:20
Je m'aperçoit que j'avai déja tenté ça:
<LINK rel="stylesheet" href="style.css" TYPE="text/css">
Mais sans le time() ça ne donnai rien ...
Marsh Posté le 09-07-2007 à 11:17:10
Bah oui puisque c'est une inclusion css tout à fait normale.
Marsh Posté le 09-07-2007 à 11:22:26
Mitch2Pain a écrit : L'interêt d'interdire la mise en cache c'est que le fichier css ne s'applique à ma page qu'au moment où il le charge (donc au 1er clic dans l'appli). Une fois le css en cache il ne s'applique plus et mes pages sont toutes moches sauf si je fait F5... |
C'est ce que je dis depuis le début : tu as un problème dans ta feuille de style, ce n'est pas le comportement normal que ta feuille de style ne s'applique pas une fois mis en cache. Corrige ça et tout ira bien. Interdire la mise en cache ce n'est pas la solution, c'est simplement un moyen (particulierement moche) de contourner les symptomes pour masquer ton problème.
Marsh Posté le 09-07-2007 à 11:36:08
Mitch2Pain a écrit : Disons que j'ai codé efficace en mettant des balises sur mes différents niveaux de titre et messages et j'ai fait un CSS après pour le design. |
Oui enfin quand je vois une balise div en dehors d'une balise <body> et pire encore d'une balise <html>. Je me dis qu'il y a un souci.
Mitch2Pain a écrit :
|
Marsh Posté le 09-07-2007 à 16:57:47
cgo2 a écrit : C'est ce que je dis depuis le début : tu as un problème dans ta feuille de style, ce n'est pas le comportement normal que ta feuille de style ne s'applique pas une fois mis en cache. Corrige ça et tout ira bien. Interdire la mise en cache ce n'est pas la solution, c'est simplement un moyen (particulierement moche) de contourner les symptomes pour masquer ton problème. |
Voilà le contenu de ma feuille de style:
Code :
|
Si vous voyez une grosse erreur ...
Marsh Posté le 09-07-2007 à 17:13:08
Mitch2Pain a écrit : |
Mais c'est quoi cette horreur ????
Depuis quand y a t'il des balises <style> à l'intérieur d'un fichier .css ? Ou des commentaires mal écrits (tips : c'est /* */) ?
Marsh Posté le 09-07-2007 à 17:24:36
Mitch2Pain a écrit : Voilà le contenu de ma feuille de style:
|
Tout est faux:
Bref il est plus bizarre que ça fonctionne que le contraire.
Marsh Posté le 09-07-2007 à 17:25:57
ReplyMarsh Posté le 09-07-2007 à 17:26:27
C'est bien ce que je disais ! C'est mal codé
Pas folle la guêpe...l'abeille...la bête pardon.
Marsh Posté le 09-07-2007 à 17:29:11
Mara's dad a écrit : Y sont toujours aussi méchant par ICI... |
oui
Marsh Posté le 09-07-2007 à 17:49:45
Mara's dad a écrit : Y sont toujours aussi méchant par ICI... |
Son code, c'est n'importe quoi. C'est beaucoup plus efficace de lui faire comprendre ça, quitte à paraitre "méchant", que de l'aider à ajouter des hacks par dessus pour corriger des problèmes qui n'existeraient pas si le code était sain.
Marsh Posté le 09-07-2007 à 18:16:31
Pour ma part, il me semble que c'est plus efficace de lui dire que faire du CSS c'est Très bien, et bien sûr lui montrer ses erreurs.
Mais lui rentrer dans le lard et lui disant qu'il fait rien que de la merde, ça me fait trop penser à moi avec mes mômes...
Marsh Posté le 10-07-2007 à 10:35:23
Oui enfin bon, ya faire du CSS et faire du CSS. Tu vois où j'veux en venir
Les sites pour apprendre c'est pas ce qu'il manque
Marsh Posté le 10-07-2007 à 11:41:21
Bah j'ai pompé l'architecture du fichier sur un site et j'ai juste modifié les paramètre comme la couleur et la police du texte. Ca a marché direct donc je n'ai pas cherché plus loin.
Je vais essayer de refaire ça proprement ...
Marsh Posté le 10-07-2007 à 11:48:21
Code :
|
ayé c corrigé.
Le comportement de mes pages est strictement le même que quand c'était codé à l'arrache. C'est quand même bien permissif la programation web j'ai l'impression ... entre les normes W3C et la réalité il y a tout un monde. Enfin ce ne sont que des impressions, je débute en web voyez-vous...
Marsh Posté le 10-07-2007 à 12:49:39
Mitch2Pain a écrit : Le comportement de mes pages est strictement le même que quand c'était codé à l'arrache. |
Tu as testé avec d'autres navigateurs ?
Marsh Posté le 10-07-2007 à 14:17:14
oui:
FF1.5 et 2.0
IE6 et 7 en nu et avec les mods Maxthon et AvantBrowser.
J'ai qq users sous opera9 aussi qui sont content depuis que le css marche (mais je n'ai pas fait de test exhaustifs de mon appli)
Marsh Posté le 11-07-2007 à 00:04:23
on pourrait voir le code HTML d'une paeg une fois généré (clic droit sur la page puis afficher le code source)
Marsh Posté le 11-07-2007 à 14:45:26
Code :
|
Marsh Posté le 11-07-2007 à 15:04:16
C'est beau, on dirait du veau
Marsh Posté le 03-07-2007 à 09:47:58
Salut,
J'ai un fichier php associé à un css pour la mise en forme.
Lorsque je charge la page pour la 1ere fois le css s'applique ma page est toute belle.
Si je charge une autre page de mon appli en suivant des liens le css ne s'applique pas.
Si je fait F5 il s'applique à nouveau.
Le fichier CSS se copie dans C:\Documents and Settings\RRO\Local Settings\Temporary Internet Files lors du 1er chargement. Si je le supprime manuellement entre 2 clics dans mon appli alors le css s'applique correctement sur chaque page
Il faudrai que ce fichier css ne se copie jamais dans le cache.
J'ai essayé le header pragma nocache avec et sans metabalise, dans le index.php et dans le fichier css, sans succès: il se copie toujours dans le cache.
La metabalise d'auto-refresh (configurée sur 5 secondes ci-dessous) fonctionne bien pour la mise en forme (le css est rechargé) mais rend mon appli totalement useless puisque celà reset tous les champs de saisie.
EDIT: code modifié depuis création du topic.
Message édité par Mitch2Pain le 11-07-2007 à 14:48:02