我正在asp.net mvc 2中制作网络应用程序,这是一种照相馆。我将不得不动态制作和显示缩略图(不保存在磁盘上),我想将这些缩略图保存在缓存中。是否有可能在mvc2中做到这一点?或者将缩略图保存到磁盘可能更好(尽管我想避免这种情况,因为应该有动态设置缩略图大小的选项)
谢谢,
ILE
答案 0 :(得分:3)
如果您只需要一些固定大小(3或4),那么生成文件并将其保存在磁盘上会更好。
如果你真的需要动态大小(作为参数),那么最简单的解决方案将是使用ASP .Net输出缓存。有OutputCacheAttribute
(特殊操作过滤器)用于将其集成到ASP .Net MVC项目中。
答案 1 :(得分:2)
静态资源(如图像)通常由浏览器缓存,因此可能是您可以使用的第一级缓存。因为您正在生成动态缩略图,所以仍然可以设置正确的缓存标头,以便用户缓存这些缩略图。如果您想为所有用户提供共享缓存,则需要将其存储在服务器上。如果您不想将缩略图保存在磁盘上,则可以始终使用内置的Cache对象,但这会进入内存,您可能很快就会开始耗尽内存。当发生这种情况时,您可以使用memcached
等提供程序卸载缓存,或者只是将它们保存在磁盘上。