C# asp.net mvc中未应用缓存
我需要在我的web应用程序中实现图像缓存,因为我的主页加载图像需要时间。我试着用不同的方法接球,但没有用 我添加了新的类名CacheFilterAttributeC# asp.net mvc中未应用缓存,c#,asp.net,asp.net-mvc-3,caching,C#,Asp.net,Asp.net Mvc 3,Caching,我需要在我的web应用程序中实现图像缓存,因为我的主页加载图像需要时间。我试着用不同的方法接球,但没有用 我添加了新的类名CacheFilterAttribute public class CacheFilterAttribute : ActionFilterAttribute { public int Duration { get; set; } public CacheFilterAttribute() { Duration
public class CacheFilterAttribute : ActionFilterAttribute
{
public int Duration
{
get;
set;
}
public CacheFilterAttribute()
{
Duration = 60;
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (Duration <= 0) return;
HttpCachePolicyBase cache = filterContext.HttpContext.Response.Cache;
TimeSpan cacheDuration = TimeSpan.FromSeconds(Duration);
cache.SetCacheability(HttpCacheability.Public);
cache.SetExpires(DateTime.Now.Add(cacheDuration));
cache.SetMaxAge(cacheDuration);
cache.AppendCacheExtension("must-revalidate, proxy-revalidate");
}
}
它不适用。
然后,我尝试通过配置文件
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="Cache1Hour" duration="3600" varyByParam="none"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
仍不适用
请告诉我快速加载图像的可能方法 你的问题中有两个误解:
Home
,结果是,如果该页面以前被请求过,它将被缓存,服务器将不再运行该操作,而是直接返回上一次执行的缓存结果如果图像加载缓慢,可能是因为您使用的是非常高分辨率的图像。如果是这种情况,请使用任何工具来降低分辨率,这样加载速度就会更快。如果对图像进行压缩,则可以使用不同级别的压缩来进一步减小其字节大小,而无需更改分辨率。有很多工具可以实现这一点,甚至在线工具。谷歌“图像优化器”。还有类似的自由软件。如何测试和检查缓存是否成功应用?如何将图像嵌入页面?我在Google Chrome浏览器的“网络缓存”选项卡中进行了检查。另外,您想要客户端缓存还是服务器端缓存,或者两者兼而有之?也许你可以在这里找到有用的线索:或者在这里:我只需要图像缓存,哪一个是最好的?我的主页有图像滑块,这些图像是静态的1)我正在本地测试我的代码,每当我重新加载页面时,它都会调用Action方法。这意味着这里不应用缓存。我的代码出了什么问题?2)我已经对图像进行了优化,但仍然缓慢加载问题图像,因此我尝试应用缓存。我的申请的在线链接
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="Cache1Hour" duration="3600" varyByParam="none"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>