5 votes

Vider le cache après le développement pour le visiteur

Je développe des sites et certains navigateurs des visiteurs semblent afficher un ancien cache.

Y a-t-il un moyen de vider le cache du navigateur du visiteur en utilisant des codes du côté serveur ou même du javascript pour qu'ils n'aient pas à le vider eux-mêmes?

Je ne trouve pas la réponse directe à cela.

Il doit y avoir un moyen pour les grandes entreprises comme Facebook, Ebay etc.

2voto

Salketer Points 2642

Nous avons utilisé le fichier htaccess pour déterminer les règles de mise en cache des clients. Nous accordons explicitement une durée de vie de 24 heures au cache et nous appliquons des règles de non-cache la veille de la mise à jour. Cela a été utile mais c'est fastidieux et pas très fiable.

Je le sors simplement pour vous donner des idées si personne ne répond, mais j'aimerais vraiment obtenir la réponse aussi. :)

1voto

Avinash Dubey Points 118

Première Méthode:

Vous pouvez en fait sauvegarder la sortie de la page avant de terminer le script, puis charger le cache au début du script.

exemple du code:

Vous pouvez en fait sauvegarder la sortie de la page avant de terminer le script, puis charger le cache au début du script.

exemple du code:

Si vous avez de nombreuses pages nécessitant cette mise en cache, vous pouvez faire ceci:

dans cachestart.php:

dans cacheend.php:

Ensuite, ajoutez simplement

include('cachestart.php'); au début de vos scripts. et ajoutez

include('cacheend.php'); à la fin de vos scripts. N'oubliez pas d'avoir un dossier nommé "cache" et autorisez PHP à y accéder.

N'oubliez pas non plus que si vous faites une mise en cache de la page entière, votre page ne doit pas avoir d'affichage spécifique à SESSION (par exemple, afficher la barre des membres ou autre) car ils seront également mis en cache. Regardez un framework pour une mise en cache spécifique (variable ou partie de la page).

Deuxième Méthode:

Utilisez Squid ou mettez à jour correctement les en-têtes HTTP pour faire une mise en cache du navigateur.

PEAR a un package de mise en cache (en fait deux):

http://pear.php.net/package/Cache

Quatrième Méthode:

Utilisez http://memcached.org/. Il y a une explication sur la façon de le faire sur ce site.

1voto

Wolfgang Stengel Points 2105

Je utilise généralement une combinaison de techniques :

  • Le HTML résultant du code PHP n'est pas mis en cache en utilisant la configuration standard, car il envoie automatiquement les en-têtes appropriés.
  • Les images et autres ressources binaires sont renommées si elles changent.
  • Pour le JavaScript et le CSS, j'ajoute un code unique créé automatiquement (par exemple un hachage MD5 du contenu ou la taille du fichier) au nom de fichier (par exemple, /public/styles.f782bed8.css) et le supprime à nouveau avec mod_rewrite. Ainsi, chaque modification du fichier entraîne un nouveau nom de fichier. Cela peut être fait en temps réel en PHP lors de la sortie de l'en-tête HTML, pour le rendre entièrement automatisé. Dans ce cas, cependant, un MD5 pourrait avoir un impact sur les performances.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X