【发布时间】:2015-07-12 11:18:34
【问题描述】:
我创建了一个动态网页。在主页上有三个滑动图像。我创建了另一个页面来更改该主页图像(滑动)。因此,在我提交第二页之后,我编写了一个 PHP 代码以返回主页。但是图像没有改变,因为我的浏览器在其缓存中有该网页。如果我手动删除缓存,或者重新启动它正在工作的浏览器。如何在 PHP 编码中删除浏览器缓存?给我一个解决方案。谢谢。
【问题讨论】:
我创建了一个动态网页。在主页上有三个滑动图像。我创建了另一个页面来更改该主页图像(滑动)。因此,在我提交第二页之后,我编写了一个 PHP 代码以返回主页。但是图像没有改变,因为我的浏览器在其缓存中有该网页。如果我手动删除缓存,或者重新启动它正在工作的浏览器。如何在 PHP 编码中删除浏览器缓存?给我一个解决方案。谢谢。
【问题讨论】:
你不能清除缓存,但是你可以先让页面不要缓存:
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
这已经在 StackOverflow 上被问过了,这个答案是从那里得到的,纯粹是为了向已经回答这个问题的其他用户表示感谢。
上一个问题在这里:How to clear browser cache with php?
或者,如前所述,您可以使用 META 标签来执行此操作,但您要求使用 PHP 解决方案,所以这里是 :D
祝你好运。
【讨论】:
有一个技巧可以使用。技巧是在脚本标记中的文件名中附加一个参数/字符串,并在文件更改时更改它。
<script src="myfile.js?version=1.0.0"></script>
浏览器将整个字符串解释为文件路径,即使“?”后面是什么。是参数。所以现在发生的事情是,下次更新文件时,只需更改网站上脚本标记中的数字(例如 <script src="myfile.js?version=1.0.1"></script>),每个用户的浏览器都会看到文件已更改并获取一个新副本。
【讨论】:
您还可以在图像 URI 中添加一个随机字符串:
<img src="myimage.png?r=12345" alt="">
如果每次重新加载主页时随机字符串都不同(!),浏览器将从服务器检索图像。
【讨论】:
如果您的文件经常更改,那么在您的位置,我只需将以下标头与 PHP 一起发送:
header("Cache-Control: no-cache, must-revalidate");
您可以在您的 PHP 脚本的第一期之前将这些行添加到您的页面中。有了这个,你告诉浏览器,它不应该缓存页面,它应该每次都再次请求内容。
对于图片,您可以在 HTACCESS 中写入以下行:
<FilesMatch "\.(jpg|png|gif)$">
Header set Cache-Control "no-cache, must-revalidate"
</FilesMatch>
【讨论】:
尝试使用 HTML 缓存控件 META TAGS:
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
或使用 EXPIRES:
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 02 May 2015 21:00:00 GMT">
【讨论】:
或者您通过 header() 禁用 PHP 缓存;功能,或者你给你的图像一个参考(imgurl.com/imagename.jpg?r=1234)。我会推荐第二种方法。为什么?因为如果您使用标头函数 op php 关闭整个页面的缓存,它只会减慢您的网站速度。所以给你的图片一个随机字符串。
【讨论】: