Javascript 图像元素的缓存内容在删除并再次添加后保留在浏览器中

Javascript 图像元素的缓存内容在删除并再次添加后保留在浏览器中,javascript,html,ajax,google-chrome,Javascript,Html,Ajax,Google Chrome,我们正在开发一个web应用程序,其中界面完全使用AJAX/Javascript 某些动态映像的缓存过期访问时间为+15分钟。因此,当图像被正常访问时,它们被缓存15分钟,然后在这段时间之后,浏览器将获取新版本,再次缓存15分钟,以此类推 问题是,在这个AJAX设置中,即使删除并添加了图像元素,新添加的图像元素(可能是15分钟后,浏览器通常会获取新的图像版本)也不包含新内容。i、 e.一旦图像加载一次,即使在删除元素后,如果在任何其他阶段重新添加该元素而不更改页面,则仅显示最初加载的版本 到目前为

我们正在开发一个web应用程序,其中界面完全使用AJAX/Javascript

某些动态映像的缓存过期访问时间为+15分钟。因此,当图像被正常访问时,它们被缓存15分钟,然后在这段时间之后,浏览器将获取新版本,再次缓存15分钟,以此类推

问题是,在这个AJAX设置中,即使删除并添加了图像元素,新添加的图像元素(可能是15分钟后,浏览器通常会获取新的图像版本)也不包含新内容。i、 e.一旦图像加载一次,即使在删除元素后,如果在任何其他阶段重新添加该元素而不更改页面,则仅显示最初加载的版本

到目前为止,这个问题与Chrome有关,我还没有测试过其他浏览器。即使移除了图像元素,图像也似乎被保存在“内存”中,图像显示在Chrome developer tools的“resources”下——同样,这是在指定此图像源的图像元素被移除很久之后

我能做些什么?到目前为止,唯一的解决方案是在后续加载时更改图像文件名(可能是旧的查询字符串技巧)。这里的问题是,这些图像随后会堆积在开发人员工具的“资源”选项卡中,就像它们被打开一样,尽管图像元素被删除

希望这是有意义的。有什么想法吗?我真的只想让Chrome(可能还有其他有这个问题的浏览器)正确加载图像,而不管新图像元素的来源是什么。那就是。。检查缓存的路由,如果已过期,则从服务器获取并再次缓存


干杯

我解决这个问题的方法是在图像路径上附加一个随机查询字符串。例如:

<img src="myimage.gif"> 

变成

<img src="myimage.gif?a=randomnumber">


随机数将迫使浏览器获取最新版本。

干杯,是的,我在问题中提到了这一个(尽管在我们的情况下,数字每15分钟只会改变一次,以节省额外的负载)。这似乎不是我们应该做的事情。这就是缓存过期时间的用途。除此之外,我们还担心这些图像文件会在Chrome开发者工具的“资源”选项卡中进一步堆积,这让我们认为浏览器正在保存这些图像以备使用,尽管元素已被长期删除。我们都知道Chrome缓存了大量的东西。如果您确定发送了正确的expires标头(可能检查firebug中的“网络”面板),并且Chrome仍在缓存它们,那么确保重新加载图像的唯一方法是更改URL。如果单独加载页面,它将跟踪缓存,例如,如果我在15分钟后在浏览器中重新加载实际页面,将显示该时间段的正确图像,因为浏览器不再捕获该页面的原始图像文件!!Firefox似乎没有这个问题:(其他人也有类似于我的问题(尽管我会说我的问题更像是一个浏览器bug)。看,我现在要比我看到的稍微困难一些,以前我找不到有同样问题的人。