通过php代码清除浏览器缓存

问题描述 投票:0回答:6

我创建了一个动态网页。在主页上有三个滑动图像。我创建了另一个页面来更改该主页图像(滑动)。因此,在提交第二页之后,我编写了PHP代码以返回主页。但是图像没有改变,因为我的浏览器的缓存中包含该网页。如果我手动删除高速缓存,或重新启动浏览器,它将正常工作。如何用PHP编码删除浏览器缓存?给我一个解决方案。谢谢。

php html caching browser
6个回答
2
投票

您无法清除缓存,但是您可以首先请求页面不要缓存:

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

祝你好运。


2
投票

您还可以在图像URI中添加随机字符串:

<img src="myimage.png?r=12345" alt="">

如果随机字符串每次在重新加载主页(!)时都不同,则浏览器将从服务器检索图像。


1
投票

可以使用一种技巧。技巧是在脚本标记中的文件名后附加参数/字符串,并在更改文件时对其进行更改。

<script src="myfile.js?version=1.0.0"></script>

即使“”之后出现了什么,浏览器仍将整个字符串解释为文件路径。是参数。因此,现在发生的麻烦是,下次更新文件时,只需更改网站上脚本标签中的数字(示例<script src="myfile.js?version=1.0.1"></script>),每个用户浏览器都将看到文​​件已更改并获取新副本。


0
投票

[尝试使用HTML缓存控件的元标记:

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

0
投票

或者您可以通过header()禁用PHP的缓存;功能,或者您可以给图片加上参考(imgurl.com/imagename.jpg?r=1234)。我建议第二种方法。为什么?因为如果您使用头函数op php关闭整个页面的缓存,则只会降低您的网站速度。因此,为图像提供一个随机字符串。


0
投票

如果您的文件经常更改,那么您只需将以下标头连同PHP一起发送给PHP:

header("Cache-Control: no-cache, must-revalidate");

您可以在第一期PHP脚本添加到页面之前添加这些行。这样,您就告诉浏览器,它不应该缓存页面,而应该每次都请求内容。

对于图片,您可以将以下行写入HTACCESS:

<FilesMatch "\.(jpg|png|gif)$">
Header set Cache-Control "no-cache, must-revalidate"
</FilesMatch>
© www.soinside.com 2019 - 2024. All rights reserved.