我有一个带有一些Javascript的PHP页面,它会在固定的时间间隔(5秒)后更改IMG标记上的SRC属性。我循环使用固定数量的图像。 PHP为所有图像URL构建一个字符串数组。图像小到最小不到10k。
如何判断浏览器是否缓存图像?如果不是,我该怎么做才能确保浏览器缓存它们?
答案 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;
希望你明白这一点。