我创建了一个动态网页。在主页上有三个滑动图像。我创建了另一个页面来更改该主页图像(滑动)。因此,在提交第二页之后,我编写了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
祝你好运。
您还可以在图像URI中添加随机字符串:
<img src="myimage.png?r=12345" alt="">
如果随机字符串每次在重新加载主页(!)时都不同,则浏览器将从服务器检索图像。
可以使用一种技巧。技巧是在脚本标记中的文件名后附加参数/字符串,并在更改文件时对其进行更改。
<script src="myfile.js?version=1.0.0"></script>
即使“”之后出现了什么,浏览器仍将整个字符串解释为文件路径。是参数。因此,现在发生的麻烦是,下次更新文件时,只需更改网站上脚本标签中的数字(示例<script src="myfile.js?version=1.0.1"></script>
),每个用户浏览器都将看到文件已更改并获取新副本。
[尝试使用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">
或者您可以通过header()禁用PHP的缓存;功能,或者您可以给图片加上参考(imgurl.com/imagename.jpg?r=1234)。我建议第二种方法。为什么?因为如果您使用头函数op php关闭整个页面的缓存,则只会降低您的网站速度。因此,为图像提供一个随机字符串。
如果您的文件经常更改,那么您只需将以下标头连同PHP一起发送给PHP:
header("Cache-Control: no-cache, must-revalidate");
您可以在第一期PHP脚本添加到页面之前添加这些行。这样,您就告诉浏览器,它不应该缓存页面,而应该每次都请求内容。
对于图片,您可以将以下行写入HTACCESS:
<FilesMatch "\.(jpg|png|gif)$">
Header set Cache-Control "no-cache, must-revalidate"
</FilesMatch>