我只需附加一个
就可以打破图像缓存?time=current_time_stamp
到我的图片网址时提出请求。
但是,我只需要在用户更新照片后立即中断缓存。
我可以为用户照片的每个图像请求添加时间戳,但这似乎过度杀死了。
有没有办法告诉浏览器,图片已更新,请刷新缓存。
否则我需要在所有动态图像上附加时间戳或类似物,以捕捉图像中的任何变化。
由于
答案 0 :(得分:1)
执行此操作的最佳方法是在图像更改时修改服务器上图像的文件名,以便在图像更改时,浏览器HTML包含对新文件名的引用,因此浏览器会请求新文件名(它不在缓存中)。文件名可以包含一个版本号,您可以在修改文件时随时增加该版本号,也可以只使用时间戳作为文件名的一部分。
这为您提供了两全其美的体验。当图像没有改变时,您可以在浏览器中获得最大的缓存,但是当图像发生变化时,您也会立即更新。
此处还相关的是,服务器可以控制每个单独元素上的缓存指令,以指示浏览器是否可以缓存或者缓存多长时间。