浏览器是否缓存动态图像?

时间:2011-07-19 13:01:52

标签: c# asp.net-mvc browser-cache

我目前正在开发一个将由多个客户端使用的Web应用程序,我希望在每个页面上显示客户端徽标。该应用程序正在使用ASP.NET MVC3和C#开发。

普通惯例建议将图像存储在数据库中,但鉴于此图像将显示在每个页面上,我担心这样做的性能损失。如果我将图像存储在文件系统上,浏览器将缓存图像,并且不会每次都请求它。

如果我将图像存储在数据库中,浏览器是否也会缓存此图像,或者每次都会调用该函数来请求图像?

在这种情况下,我最好将图像存储在服务器的硬盘上吗?

3 个答案:

答案 0 :(得分:3)

(现代)浏览器不知道服务器为存储图像做了什么。如果URL相同,浏览器将只提取缓存版本,除非明确告知不要。

在某些情况下,您可能需要禁用缓存:http://www.example.com/random-image每次访问时可能会提供不同的图像,浏览器会缓存第一张图像。

答案 1 :(得分:0)

在动态图像控制器中适当地设置Response.Cache标头,它来自动态源并不重要。

查看此帖子,了解使用MVC ActionFilter设置缓存的想法:http://weblogs.asp.net/rashid/archive/2008/03/28/asp-net-mvc-action-filter-caching-and-compression.aspx。它还说明了您需要调整的标题。

答案 2 :(得分:-2)

图片由其网址缓存。如果自上次加载页面后URL没有更改,则将从缓存中获取图像。