我有一个Javascript应用程序,需要经常刷新一些缩略图。
我创建了一个计时器,可以将缩略图的src
属性从someImage.jpg
更改为someImage.jpg?0
,然后更改someImage.jpg?1
,依此类推。在所有桌面浏览器上,这有效地强制重新加载图像,这可能 - 或者可能不 - 在服务器上发生了变化。
但iOS上的Safari(包括iPad和iPhone)似乎都采用了更为激进的缓存策略,从而违背了这一策略。它高兴地忽略了查询字符串,并且没有发出新资产的请求。
有没有办法强制所有浏览器 - 包括Safari - 重新加载图像?
最糟糕的一件事应该是实际更改服务器上图像的URL。不幸的是,这可能不在我的控制之下,因此我正在寻找一个Javascript解决方案。
答案 0 :(得分:0)
事实证明问题只是Safari保留了下载资产的更多副本,甚至跨页面重新加载,因此所有名为someImage.jpg?0
,someImage.jpg?1
等的图像都已存在于缓存中。移动到随机查询字符串会起作用。