我使用mysql数据库生成一些png图表和excel文件。我在webapplication中将图表显示为图像,但IE用户不时会访问最新版本的文件,因为IE会向他们显示以前加载的数据(图表和Excel文件)
如何防止发生这种情况?在客户端可以做些什么?
我的网络应用程序是用PHP编写的。我应该使用什么方法来强制IE加载新文件?
答案 0 :(得分:5)
您可以使用的另一种方法是向您正在显示的图像添加唯一的查询字符串。在图像处理程序上,您可以忽略实际在查询字符串上传递的数据,但IE会将具有不同查询字符串的URL视为唯一,因此需要重新加载每个查询字符串而不使用缓存版本。
例如,更改:
<img src="mychart.png>
为:
<img src="mychart.png?timestamp=0512200911090000">
会让你避免IE缓存。
答案 1 :(得分:2)
<HTML><HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD><BODY>
</BODY>
</HTML>
答案 2 :(得分:2)
HTML元可以工作,但使用PHP标头是有效且更正确的(look here)。本文还介绍了缓存可下载/非html文件。
缓存可以在PHP中以这些方式之一完成(在流式传输图像内容之前使用标题):
<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Pragma: no-cache');
?>
或
<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
?>