zoukankan      html  css  js  c++  java
  • MVC缓存(一)

    //OutputCache是设置缓存,参数Duration设置缓存的过期时间,OutputCache可以加到Controller上,也可以加到Action上,但是当Controller与Action都应用了OutputCache时,以Action的OutputCache为主。
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Mvc;
     6 
     7 namespace MvcApplication1.Controllers
     8 {
     9     [OutputCache(Duration = 10)]
    10     public class ControlController : Controller
    11     {
    12         //
    13         // GET: /Control/
    14         [OutputCache(Duration = 20)]
    15         public ActionResult Index()
    16         {
    17             ViewBag.Text = System.DateTime.Now;
    18             return View();
    19         }
    20         public ActionResult Index2()
    21         {
    22             ViewBag.Text = System.DateTime.Now;
    23             return View();
    24         }
    25     }
    26 }
    当多个Controller或者Action都要设置缓存,并且缓存的数据都是一致的时候,可以把对缓存的配置写到web.config的system.web节点下
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <!--
     3   For more information on how to configure your ASP.NET application, please visit
     4   http://go.microsoft.com/fwlink/?LinkId=169433
     5   -->
     6 
     7 <configuration>
     8   <appSettings>
     9     <add key="webpages:Version" value="2.0.0.0" />
    10     <add key="webpages:Enabled" value="false" />
    11     <add key="PreserveLoginUrl" value="true" />
    12     <add key="ClientValidationEnabled" value="true" />
    13     <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    14   </appSettings>
    15   <system.web>
    16     <!--配置缓存-->
    17     <caching>
    18       <outputCacheSettings>
    19         <outputCacheProfiles>
    20           <add name="TestConfigCache" duration="10"/>
    21         </outputCacheProfiles>
    22       </outputCacheSettings>
    23     </caching>
    24     <!--配置缓存-->
    25     <httpRuntime targetFramework="4.5" />
    26     <compilation debug="true" targetFramework="4.5" />
    27     <pages>
    28       <namespaces>
    29         <add namespace="System.Web.Helpers" />
    30         <add namespace="System.Web.Mvc" />
    31         <add namespace="System.Web.Mvc.Ajax" />
    32         <add namespace="System.Web.Mvc.Html" />
    33         <add namespace="System.Web.Routing" />
    34         <add namespace="System.Web.WebPages" />
    35       </namespaces>
    36     </pages>
    37   </system.web>
    38   <system.webServer>
    39     <validation validateIntegratedModeConfiguration="false" />
    40 
    41     <handlers>
    42       <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
    43       <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
    44       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
    45       <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
    46       <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%Microsoft.NETFramework64v4.0.30319aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
    47       <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    48     </handlers>
    49   </system.webServer>
    50 
    51 </configuration>

    取web.config中的配置

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Mvc;
     6 
     7 namespace MvcCache.Control.Controllers
     8 {
     9     public class ConfigController : Controller
    10     {
    11         //TestConfigCache为在配置文件中配置的缓存节
    12         [OutputCache(CacheProfile = "TestConfigCache")]
    13         public ActionResult Index()
    14         {
    15             ViewBag.CurrentTime = System.DateTime.Now;
    16             return View();
    17         }
    18 
    19     }
    20 }

    OutputCache的常用属性

    1)CacheProfile:缓存使用的配置文件的缓存名称。

    2)Duration:缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的。

    3)OutputCacheLocation:枚举类型,缓存的位置。当设置成None时,所有缓存将失效,默认为Any。

        Any:页面被缓存在浏览器、代理服务器端和web服务器端;

       Client:缓存在浏览器;

       DownStream:页面被缓存在浏览器和任何的代理服务器端;

       Server:页面被缓存在Web服务器端;

       None:页面不缓存;

       ServerAndClient:页面被缓存在浏览器和web服务器端;

    4)VaryByParam:用于多个输出缓存的字符串列表,并以分号进行分隔。默认时,该字符串与GET方法传递的参数或与POST方法传递的变量相对应。当被设置为多个参数时,输出缓存将会为每个参数都准备一个与之相对应的文档版本。可能值包括none,*,以及任何有效的查询串或POST参数名称。

  • 相关阅读:
    【BZOJ2288】生日礼物 [贪心]
    Tinyhttpd阅读笔记
    数据结构-图-经典算法(三)
    数据结构-图-经典算法(二)
    数据结构-图-经典算法(一)
    TCP协议的滑动窗口协议以及流量控制
    2016腾讯实习电话面试总结---2016-03-10
    B树,B+树,B*树
    平衡二叉树(AVL树)
    二叉搜索树(二叉查找树,二叉排序树)
  • 原文地址:https://www.cnblogs.com/caijiabao/p/8257012.html
Copyright © 2011-2022 走看看