Aller au contenu

Sujets conseillés

Posté

bonjour

j'ai un problème avec le cache et/ou les cookies générés par magpierss :unsure:

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 :angry:

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

Posté

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" />

Posté (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 :rolleyes:

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 :blush: ?)

et au fait, dotclear met ça dans le header, à quoi ça sert ?

<meta name="MSSmartTagsPreventParsing" content="TRUE" />

Modifié par Clair de Lune
Posté

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");

Posté

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 :blush:

Posté

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.

Posté (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 :blush:

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 :up:

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 :D

Modifié par Clair de Lune
Posté

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...

Posté

Bonjour,

Voilà ce que j'ai trouvé

MSSmartTagsPreventParsing: TRUE - prevent Microsoft Smart Tags being applied to a page
extrait de A Dictionary of HTML META Tags

ce qui signifie, si je ne me trompe pas : empêche les étiquettes futées de Microsoft d'être appliquées à une page :rolleyes:

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 XP
extrait de Smart tags

et aussi Les Smart Tags : quand les étiquettes deviennent communicantes !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...