我有一个带有一些 Javascript 的 PHP 页面,该页面会在固定时间间隔(5 秒)后更改 IMG 标记上的 SRC 属性。我循环浏览了固定数量的图像。PHP 为所有图像 URL 构建一个字符串数组。图像很小,小于 10k。
我如何判断浏览器是否正在缓存图像,如果没有,我必须做什么来确保浏览器缓存它们?
我有一个带有一些 Javascript 的 PHP 页面,该页面会在固定时间间隔(5 秒)后更改 IMG 标记上的 SRC 属性。我循环浏览了固定数量的图像。PHP 为所有图像 URL 构建一个字符串数组。图像很小,小于 10k。
我如何判断浏览器是否正在缓存图像,如果没有,我必须做什么来确保浏览器缓存它们?
是的,即使您的标题另有说明,浏览器也会缓存它们。我发现最好的组合是发出必要的 Cache-Control 标头以及将随机字符串附加到源 URL。
例如,以秒为单位设置最大年龄:
header("Cache-Control: max-age=3600");
然后将随机字符串附加到您的 img 源。这需要在 Javascript 中,而不是在 PHP 中,因为一旦您的 URL 是在 PHP 中生成的,它们就不会使用新的随机字符串进行更新:
var randomString = "" + new Date().getTime();
var imageUrl = yourImageArray[someIndex] + "?" + randomString;
希望你能明白。
如果您需要尝试强制浏览器不缓存某些图像,则应正确配置服务器为每个图像请求发送的标头,以便它们发送正确的 Cache-Control 标头。