我有一个 C# 中的 MVC 应用程序。我有一个包含大量图像的页面。页面加载后,所有图像都将存储在浏览器的缓存中。但是当我更改图像时,它确实会替换旧图像。由于新旧图像具有相同的名称,并且图像是从浏览器的缓存中获取的。但是,如果我使用 Ctrl+F5 刷新页面,则会呈现新图像。有什么方法可以让我只从浏览器的缓存中删除旧图像吗?我无法删除浏览器的所有缓存,因为它包含许多应该缓存的图像。仅应从正在更改的缓存中删除该图像。
非常感谢您的所有回复。有几点我应该在这里提到: 1. 我无法使用查询字符串,因为该单个页面包含许多具有不同图像的部分,并且该特定图像在不同部分中呈现。 2. 我无法使用图像的 url 添加新的 guid 或日期时间,因为如果我这样做,那么每次刷新页面时都会发生新的服务器调用,并且图像将来自服务器,并且该页面在多个页面中呈现相同的图像地方。
因此,为了减少服务器调用并提高性能,我必须从浏览器缓存中仅删除该图像。
最佳答案
图像是否具有唯一值,例如版本或创建日期时间?如果是这样,您可以将其添加到文件名或作为查询字符串。浏览器将缓存图像,但 QueryString 中的新值将请求新图像。
关于c# - 在mvc中清除浏览器缓存中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183590/