Clair de Lune Posté 7 Septembre 2004 Posté 7 Septembre 2004 bonjour j'ai un problème avec le cache et/ou les cookies générés par magpierss sur la page d'accueil, j'affiche 2 fils RSS : le premier pour les 3 derniers articles publiés sur une autre page du site le second pour les 3 derniers articles publiés sur Libération à la première visite de la page, pas de problème, mais lors des visites suivantes les articles ne changent plus, et la page n'est plus d'actualité seule solution sous mozilla : actualiser la page avec la touche majuscule je sais que magpierss met en cache (sur le serveur ?) le fil rss pendant 1 heure (c'est réglable) pour éviter trop de requêtes, mais je ne comprends pas pourquoi après ce délai je n'obtiens pas une liste à jour, ni le lendemain d'ailleurs cela ne semble affecter que les navigateurs des internautes, car dans le cache de google la page est différente après chaque visite (hebdomadaire...) du robot un grand merci à celui ou celle qui me fournira une piste
Guest Ldo Posté 7 Septembre 2004 Posté 7 Septembre 2004 Ton problème ne relève pas de php si tu dit que google a la bonne version de la page pour interdire aux navigateurs de mettre la page en cache, tu peut utiliser <meta http-equiv="pragma" content="no-cache" />
Clair de Lune Posté 7 Septembre 2004 Auteur Posté 7 Septembre 2004 (modifié) Ton problème ne relève pas de php si tu dit que google a la bonne version de la page c'est aussi ce que je pensais, mais je ne suis pas assez sûr de mon jugement merci beaucoup Ldo, je vais essayer ça j'ai juste une petite question : le fait d'interdire à un navigateur de mettre une page en cache a t il des conséquences gênantes (bande passante, accessibilité, que sais-je ?) et au fait, dotclear met ça dans le header, à quoi ça sert ? <meta name="MSSmartTagsPreventParsing" content="TRUE" /> Modifié 7 Septembre 2004 par Clair de Lune
Guest Ldo Posté 7 Septembre 2004 Posté 7 Septembre 2004 En y repensant, il y a plus intelligent à faire que d'interdire la mise en cache en fait, le navigateur envoit une requette à la page pour savoir si le fichier à changer depuis la mise en cache. le serveur répond non puisque le fichier php en lui même n'a pas été modifié, par contre le contenu lui a changer. la meilleure chose à faire, et d'indiquer dans le fichier php, la date de modification du document. ainsi tous les avantages du cache sont conservés, et normalement en cas de nouveaux contenu, les navigateurs mettront à jour le cache. pour ce faire, c'est simple, au debut de ton fichier php, rajoute simplement : header("Last-Modified: " . $laDateDeMiseAJour . " GMT");
Clair de Lune Posté 7 Septembre 2004 Auteur Posté 7 Septembre 2004 euh...ce n'est pas clair, désolé car je suppose que $laDateDeMiseAJour ne va pas le faire comme ça, et qu'il y a un format à respecter que je ne connais pas admettons pour aujourd'hui le 07-09-04, je l'écris comment ? merci pour ta patience
Nudrema Posté 7 Septembre 2004 Posté 7 Septembre 2004 PHP indique par défaut une date de modification qui est celle à laquelle le fichier est généré (donc maintenant). Mais le fait d'indiquer une date dans le passé n'aura aucun effet sur le cache, car pour celui-ci le navigateur envoie une requête à laquelle on devrait, pour utiliser le cache, répondre un code 304 et ne pas fournir de contenu (car celui-ci n'a pas changé). Il y a alors un gain de bande passante et ce genre de choses qui en découlent. Voir http://blog.dreams4net.com/CachezMoiCa Je pense aussi que le Pragma et le Cache-Control devraient régler ton problème.
Clair de Lune Posté 7 Septembre 2004 Auteur Posté 7 Septembre 2004 (modifié) bonjour nudrema malheureusement, si j'ai bien compris ce que tu me dis, je n'en ai pas saisi l'application à mon problème, désolé quand il s'agit de php je suis long à la détente pour l'instant donc, je reste sur le conseil précédent de Ldo, à savoir le <meta http-equiv="pragma" content="no-cache" /> qui semble très bien marcher, ça le fait nickel (kom il diz lé jeunz) , merci encore mille fois Ldo si ensuite je finis par comprendre le conseil suivant, j'essaierai de l'appliquer mais personne n'a répondu à ma question sur les inconvénients d'empêcher la mise en cache de cette p.... de page, alors pour l'instant, je reste avec ce bout de code et euh... j'ai peur de me répéter, mais tant pis, qui saurait me dire ce que signifie ce truc dans le code de dotclear <meta name="MSSmartTagsPreventParsing" content="TRUE" /> hé ? édit : ou alors nudrema tu me disais que le premier conseil de Ldo était le bon à ton avis, dans ce cas effectivement j'ai compris Modifié 7 Septembre 2004 par Clair de Lune
Nudrema Posté 7 Septembre 2004 Posté 7 Septembre 2004 Ah non, une balise <meta> n'a rien à faire dans un fichier XML RSS, tu dois envoyer le pragma: via la fonction header() header('Pragma: no-cache'); (ou alors j'ai pas tout compris, c'est possible aussi) Pour les inconvénients, en fait il n'y en a pas vraiment dans la mesure où les pages en php ne sont normalement pas mises en cache. Sinon par rapport à une solution dans laquelle tu gères le cache http, tu utiliseras davantage de bande passante, et l'affichage des pages sera plus lent à la deuxième vision (vu que la page sera rechargée) Pour le truc dans dotclear, c'est juste pour désactiver une ancienne feature de IE, à savoir les Smart Tags, mais je ne sais pas si c'est vraiment utile de nos jours...
Monique Posté 7 Septembre 2004 Posté 7 Septembre 2004 Bonjour, Voilà ce que j'ai trouvé MSSmartTagsPreventParsing: TRUE - prevent Microsoft Smart Tags being applied to a pageextrait de A Dictionary of HTML META Tagsce qui signifie, si je ne me trompe pas : empêche les étiquettes futées de Microsoft d'être appliquées à une page Pour en savoir plus smart tags : liens intelligents. Cette technologie est connue sous le nom de Smart Tags chez Microsoft et a été découverte lors des tests des versions béta de Windows XPextrait de Smart tags et aussi Les Smart Tags : quand les étiquettes deviennent communicantes !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant