zoukankan      html  css  js  c++  java
  • Asp.Net2.0中的缓存

    缓存

    一、Output Caching输出缓存
     IIS会智能的配置缓存,默认是打开的;

    定制Output Caching的两种基本方法
     1、基于底层API技术(编程难度大)
      通过设置System.Web.HttpCachePolicy属性来设置缓存,如:
      Response.Cache.SetExpires(DateTime.Now(60));//(和设置Duration一样)
      Response.Cache.SetCacheability(HttpCacheability.Public);//(和设置VaryByParam一样)

     2、基于高层的Output Caching技术
      2.1静态缓存:<%@ OutputCache Duration="5" VaryByParam="none" %>--缓存间隔5秒,VaryByParam指是否会因为返回参数不同而改变;
      2.2传递参数页面的缓存PostBackCache:当根据用户请求生成界面时,设置VaryByParam="State",?????=====配合指定SelectParameter=====?????,实现页面缓存;
      2.3硬盘缓存:IIS默认硬盘缓存是打开的,这也是VS2005的特性;方法如下:<%@ OutputCache Duration="3600" VaryByParam="none" DiskCachEable="true"%>这表示该页面将使用硬盘为缓存目标,一般这里设置的时间都比较大,因为缓存文件频繁被刷新的话,性能会比不缓存更差,一般将对实时性要求不高和数据量很大的页面采用硬盘缓存;可在WebConfig.xml中设置缓存大小(一般不指定,系统自动会给一个默认值)
      2.4回调缓存:通过API实现,可以针对每个请求在页面中插入动态部分,以弥补单独使用静态缓存的不足,例如某页面中80%的部分都不需要实时更新,但是有20%的部分需要实时更新,这时就用到回调缓存;它正常的设置<%@ OutputCache Duration="5" VaryByParam="none" %>,然后通过在页面中加入 <asp:Substitution MethodName="xxxxxx" ID="xxxx" runat="server" />来实现一部分缓存一部分不缓存的机制;


    二、Fragment Caching碎片缓存

    Page Fragment Caching:专门用于缓存用户控件,和回调缓存作用一样,但是实现比较简单;简单的实现是在用户控件ascx中设置缓存,但是在页面中不设置缓存,这样就只缓存了控件部分,而不缓存页面;ascx中还可包含对传递参数页面的缓存,例如ascx中有一个下拉框和一个数据表;

    三、Data Caching
    此方法会比Output Caching更提高性能,例如:从数据库中取得数据,然后将DataSet放到缓存中Cache("MyDataSet")中,然后在频繁访问时,从缓存读取数据,一般比较大的数据缓存如DataSet,会配合硬盘缓存来使用;也可以象以下这样实现:
       if(Cache["aaa"]==null)
       {
        Cache.Insert("aaa","1000");
        Response.Write("新建缓存");
       }
       else
       {
        Response.Write("读取缓存"+Cache["aaa"].ToString());
       }

    四、SQL Caching
    以上缓存技术中,一旦缓存过期,就会释放缓存,而SQL Caching通过配置数据库连接池,只有当数据库数据被改变时缓存才会改变;
    aspnet_regsql.exe文件是专门注册SQL连接池的,对SQL7以上都有支持,通过配置,可以将连接池和本地应用程序连接,然后再页面中WebConfig中指定参数,就可以方便的进行访问,即可实现只有当数据库数据被改变时缓存才会改变;配置需要在DOS中完成,然后再在页面中加参数;(00:57:00)


    五、Cache Configuration

  • 相关阅读:
    第一章 经济基础知识
    105_实例
    SQL开窗函数
    Docker教程:Docker入门实践
    102_HDFS分布式文件系统
    [转]远程连接出现身份验证错误,要求的函数不受支持
    flutter创建工程指定iOS及Android开发语言
    架构师学习之路:康威定律
    智能识别客户收货地址信息
    深入理解Apache Dubbo与实战 pdf
  • 原文地址:https://www.cnblogs.com/shen/p/537779.html
Copyright © 2011-2022 走看看