Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果站点出现错误,如何清除缓存_Php_Caching - Fatal编程技术网

Php 如果站点出现错误,如何清除缓存

Php 如果站点出现错误,如何清除缓存,php,caching,Php,Caching,标题可能有点糟糕或误导,但我的问题是: 有没有一种好方法可以确保,如果有人过去访问过我的网站,过了一段时间又重新访问,旧内容不会显示,新内容就会出现?我在我的php中添加了类似的内容-请确保在写任何其他内容之前发送标题 header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 使用http头条目关闭缓存: <head>

标题可能有点糟糕或误导,但我的问题是:


有没有一种好方法可以确保,如果有人过去访问过我的网站,过了一段时间又重新访问,旧内容不会显示,新内容就会出现?

我在我的php中添加了类似的内容-请确保在写任何其他内容之前发送标题

  header("Cache-Control: no-cache, must-revalidate"); 
  header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 

使用http头条目关闭缓存:

<head>
    <meta http-equiv="Expires" content="0" />
    <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />
    <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0" />
    <meta http-equiv="Pragma" content="no-cache" />
</head>

显示旧内容的原因是它已被缓存。用户的浏览器可能会从缓存中获取内容。若并没有缓存,那个么用户每次在浏览器中打开站点时都会得到新内容

我猜您希望有一个选项来强制用户的浏览器显示更新的页面,即使浏览器缓存中有该页面。页面仍可能被缓存,但当您有新版本时,您希望用户看到新版本

我建议考虑以下方法。您可以向站点上的页面URL添加参数,并在内容更改时更改此参数。例如:

我对CSS和JS文件使用这种方法。通常,它们应该被缓存很长时间,可能是几周或几个月。但当文件更新时,用户应该获得新版本

这与正常的缓存控制无关。但是,当您希望缓存文件和页面并控制其更新时间时,可以解决此任务


如果您有任何问题,请告诉我。

您的问题(以及标签)中不清楚您是否使用memcached或任何其他库在服务器端保留缓存页面。我希望这会对您有所帮助。注意:我不是为公共系统开发的,因此您可能会发现需要添加额外的标题以覆盖所有浏览器-请尝试一些测试。