我有一个 Javascript 应用程序需要经常刷新一些缩略图。
我创建了一个计时器,它将缩略图的 src
属性从 someImage.jpg
更改为 someImage.jpg?0
,然后someImage.jpg?1
等等。在所有桌面浏览器上,这有效地强制重新加载图像,该图像在服务器上可能已更改,也可能未更改。
但是 iOS(包括 iPad 和 iPhone)上的 Safari 似乎有一个更激进的缓存策略,使这个策略失败了。它愉快地忽略查询字符串并且不发出对新 Assets 的请求。
Is there a way to force all browsers - Safari included - to reload an image?
在最坏的情况下,应该起作用的一件事实际上可能是更改服务器上图像的 URL。不幸的是,这可能不在我的控制之下,因此我正在寻找 Javascript 解决方案。
最佳答案
事实证明,问题只是 Safari 保留了更多已下载资源的副本,即使在页面重新加载时也是如此,因此所有名为 someImage.jpg?0
、someImage.jpg?1 的图像
等等,已经在缓存中了。转向随机查询字符串证明是可行的。
关于javascript - 在 iOS 上的 Safari 中刷新图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10484198/