web-dev-qa-db-fra.com

Comment effacer le cache du navigateur avec php?

Comment effacer le cache du navigateur avec php?

45
ZA.
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-Type: application/xml; charset=utf-8");
49
ZA.

Vous pouvez supprimer le cache du navigateur en définissant les en-têtes suivants:

<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
32
user1032289

Il semble que vous ayez besoin de versions, de sorte que lorsque des changements surviennent, le navigateur détecte quelque chose de nouveau et l'utilisateur n'a pas besoin de vider le cache du navigateur. 

Vous pouvez le faire par les sous-dossiers (example /css/v1/style.css) ou par le nom de fichier (example: css/style_v1.css) ou même en configurant différents dossiers pour votre site Web, par exemple:

www.mywebsite.com/site1

www.mywebsite.com/site2

www.mywebsite.com/site3

Et utilisez un fichier .htaccess ou même modifiez httpd.conf pour le rediriger vers votre application actuelle.

S'il s'agit de one image ou page :

    <?$time = date("H:i:s");?>
    <img src="myfile.jpg?time=<?$time;?>">

Vous pouvez utiliser $ time sur des pièces lorsque vous ne voulez pas mettre en cache. Donc, il va toujours tirer une nouvelle image. Le versionate semble une meilleure approche, sinon il peut surcharger votre serveur. N'oubliez pas que le cache du navigateur n'est pas seulement bénéfique pour l'expérience utilisateur, mais également pour votre serveur.

0
Marcelo Agimóvel