zoukankan      html  css  js  c++  java
  • asp.net mvc3 输出缓存

    在mvc开发中本人经常会遇到这样的问题,在action中返回列表的时候经常会遇到有缓存,但是那都是浏览器的自带的缓存,没有在mvc里面真正使用过,我们经常在action里面用

    Response.Cache.SetCacheability(HttpCacheability.NoCache);   //清除缓存

    或者是在页面添加清除缓存标签

    this.ControllerContext.HttpContext.Response.AddHeader("cache-control", "no-cache"); //清除缓存
    

    来清除缓存,但是为了优化系统必须有,为了提升,今天看了下,首先看了下大神老赵的博客关于缓存的方案,大牛就是大牛,非常经典http://www.cnblogs.com/JeffreyZhao/archive/2009/09/17/aspnet-mvc-fragment-cache-1.html

    还有一种就是mvc的输出缓存OutputCacheAttribute  相当简单,这个跟asp.net中@ OutputCache 属性是一样的,唯一不受 OutputCacheAttribute 支持的 @ OutputCache 属性是 VaryByControl

     [OutputCache(Duration = 10)]
            public ActionResult Index()
            {
                return View(DateTime.Now);
            }
    

     但是在项目中一般建议不要这么写,因为这样如果控制器多的话比较难以控制,我觉得通过来规定整个控制器也是可取的

    [OutputCache(Duration = 10)]
        public class HomeController : Controller
        {
            //
            // GET: /Default1/
            public ActionResult Index()
            {
                return View(DateTime.Now);
            }
    
        }
    

     但是网上还是建议通过xml形式来规定,这样更容易的全局控制

     [OutputCache(CacheProfile = "objectboy")]
            public ActionResult Index()
    

     Web.Config格式如下:

    <system.web>
      <caching>
        <outputCacheSettings>
          <outputCacheProfiles>
            <add name="objectboy" duration="10" varyByParam="*" />
          </outputCacheProfiles>
        </outputCacheSettings>
      </caching>
    </system.web>
    

     几种方式都将在页面缓存10s,  还有什么好的方式请指教,

  • 相关阅读:
    Spring 中的邮件任务
    Spring 定时任务
    java中同步交互 与 异步交互
    Springboot 版本包冲突
    Derby 配置环境变量
    Springboot中的Web服务Tomcat改为Jetty
    二叉树中和为某一值的路径
    0-Java中this和super的用法总结
    树9:二叉搜索树的后序遍历
    位运算-输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
  • 原文地址:https://www.cnblogs.com/objectboy/p/3060663.html
Copyright © 2011-2022 走看看