在我工作的公司ASP.NET MVC2浏览器缓存,我们有一个ASP.NET MVC2开发和IIS7托管的Web应用程序。与HTTP304状态代码
在一个特定的行动,我们返回一个JsonResult物体保持的阵列。此数组每天更新;所以任何来自同一天的请求都会以相同的响应结束。
public ActionResult SomeAction(int id)
{
// Some calculations
return Json(resultArray, JsonRequestBehavior.AllowGet);
}
由于操作成本高昂,我们希望通过浏览器缓存等提高性能。
我加了一个缓存头,所以我们告诉用户的浏览器缓存结果直到该数据库的一次更新。
除此之外,我想添加一个“的Last-Modified”头,所以浏览器会询问如果电源是在指定日期之后修改。
完成这个的方法是什么?我想检查日期浏览器询问(Last-Modified标题)后数据库是否被修改,如果没有修改,我想返回304只是IIS自动为静态文件(图像,css和js文件等)做的
[你知道输出缓存的属性吧?](http://msdn.microsoft.com/en-us/library/system.web.mvc.outputcacheattribute.aspx) – bzlm
是的,但outputcache属性需要编译时间定义的持续时间,我需要在运行时检查数据库的最后修改日期。 – SadullahCeran
没错。但是,你真正的问题是什么?这听起来像你有一切想通了。如果你设置了Expires和Last-Modified以及Cache-Control的东西,那么不是所有东西都可以工作吗? – bzlm