PHP重定向后,图像无法刷新(缓存问题?)

时间:2011-04-29 06:05:39

标签: php javascript html

问题是下一个:我在main.php,我用一个JavaScript脚本调用一个php文件,将用户的图像与服务器上的新图像同步。但是在所有文件函数完成后(没有问题)并且我使用标题重定向到main.php,进行了非常快速的刷新,但是图像没有更新,我一直在看旧文件但是如果我刷新页面 F5 显示新图像。

缓存问题?我试过一些HTML元标记,但没有运气。有什么想法吗?

非常感谢。

编辑:为了说清楚。我已尝试使用标题并在重定向中使用时间戳,但没有运气。这是过程:

  1. main.php,一旦用户点击他/她的图像,就会启动javascript(location.href)重定向到update.php。
  2. 我从服务器获取一个新图像,并将其保存为覆盖前一个图像(因此名称相同)
  3. 我在代码中添加了一些标题,没有chae标题...和Location标题再次重定向到main.php,我通过GET传递一些参数也是一个时间戳(time())。
  4. 我到达了main.php,但重新加载的速度很快,并且没有显示新图像。
  5. 现在我觉得更清楚了。

    感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

您可以在图片的网址中添加?t=foo之类的内容。其中foo是随机字符串或数字。或者也许是当前的时间戳。这将使浏览器请求一个全新的图像,并且没有缓存实例可以做任何事情。

答案 1 :(得分:1)

您可能需要使用header函数添加标题ExpiresCache-Control

答案 2 :(得分:1)

是的,它是缓存问题,IE通常会这样做。我对请求使用always append?timestamp来避免这种情况。

修改

是的,我明白了。我前段时间遇到同样的问题。时间戳都是解决方案。

您必须将时间戳添加到< img src =“path_to_image / image.jpg * ?edited-time-stamp * ”/>

它对我有用,希望对你也有用。

答案 3 :(得分:0)

尝试这种方法希望它可以帮助你。

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Location:http://www.test.com");
exit;
?>