什么方法会提醒浏览器图像已更改?

时间:2013-02-17 14:32:16

标签: javascript

我只需附加一个

就可以打破图像缓存
?time=current_time_stamp

到我的图片网址时提出请求。

但是,我只需要在用户更新照片后立即中断缓存。

我可以为用户照片的每个图像请求添加时间戳,但这似乎过度杀死了。

有没有办法告诉浏览器,图片已更新,请刷新缓存。

否则我需要在所有动态图像上附加时间戳或类似物,以捕捉图像中的任何变化。

由于

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是在图像更改时修改服务器上图像的文件名,以便在图像更改时,浏览器HTML包含对新文件名的引用,因此浏览器会请求新文件名(它不在缓存中)。文件名可以包含一个版本号,您可以在修改文件时随时增加该版本号,也可以只使用时间戳作为文件名的一部分。

这为您提供了两全其美的体验。当图像没有改变时,您可以在浏览器中获得最大的缓存,但是当图像发生变化时,您也会立即更新。

此处还相关的是,服务器可以控制每个单独元素上的缓存指令,以指示浏览器是否可以缓存或者缓存多长时间。