浏览器是否缓存图像?

时间:2012-09-17 20:32:45

标签: php html browser-cache

我有一个带有一些Javascript的PHP页面,它会在固定的时间间隔(5秒)后更改IMG标记上的SRC属性。我循环使用固定数量的图像。 PHP为所有图像URL构建一个字符串数组。图像小到最小不到10k。

如何判断浏览器是否缓存图像?如果不是,我该怎么做才能确保浏览器缓存它们?

2 个答案:

答案 0 :(得分:1)

如果您需要尝试强制浏览器不缓存某些图像,则应正确配置服务器为每个图像请求发送的标头,以便它们发送正确的Cache-Control标头。

答案 1 :(得分:1)

是的,浏览器会缓存它们,即使你的标题另有说明也是如此。我发现最好的组合是发出必要的Cache-Control标头,并在源URL中附加一个随机字符串。

示例,以秒为单位设置最大年龄:

header("Cache-Control: max-age=3600");

然后在你的img源代码中附加一个随机字符串。这需要在Javascript中,而不是在PHP中,因为一旦您的URL在PHP中生成,它们将不会使用新的随机字符串进行更新:

var randomString = "" + new Date().getTime();
var imageUrl = yourImageArray[someIndex] + "?" + randomString;

希望你明白这一点。