zoukankan      html  css  js  c++  java
  • Asp.net 缓存使用

    ASP.net缓存主要分为:

    1.页面缓存(中庸)

    2.数据源缓存(最不灵活的)

    3.数据缓存(灵活)这三种主要类型


    应用介绍

    1.页面缓存:给页面添加<%@ OutputCache Duration=“15”  VaryByParam=“none”%>标签就可以启用页面缓存,这样整个页面的内容都会被缓存,页面中的ASP.Net代码、数据源在缓存期间都不会被运行,而是直接输出缓存的页面内容。 也就是不会执行C#和HTML代码,直接到缓存空间中拿已经存在的页面。

    对于看新闻页面来讲,如果如上设置的话,则会缓存在第一个看到的新闻,因为?id=2、?id=3只是页面的不同参数而已,为了能让不同的新闻各自缓存,因此可以设置VaryByParam=“id”,表示对于相同页面的不同的id参数进行单独缓存。如果有多个确定缓存的参数,则将参数名用分号隔开即可,比如VaryByParam=“id;number”。如果想让任何不同的查询字符串都创建不同的缓存,则设置VaryByParam="*",一般情况下设置“*”就足够。

    一般网站的首页设置页面缓存。

    2.数据源缓存
    设定ObjectDataSource的CacheDuration(缓存时间:秒),EnableCaching=true。这样每隔CacheDuration指定的时间段才调用SelectMethod指定的方法来执行数据库查询,其他时候都是直接返回缓存的数据。取数据的过程缓存,在缓存期间,绑定控件向ObjectDataSource要数据, ObjectDataSource直接将缓存的数据返回给控件,不再去向TypeName指向的类要数据。
    CacheExpirationPolicy="Sliding"。缓存实效策略。

    3.数据缓存

    var data = HttpRuntime.Cache["hotwords"];
    if (data == null)
    {
        IEnumerable<SearchSum> hotwords = new KeywordLogServices().GetHotWords();
        //将数据放入缓存,key为"hotwords",缓存30秒
        //第一个参数为缓存项的key,第二个参数为值
        //第四个参数为超时时间
        HttpRuntime.Cache.Insert("hotwords", hotwords, null, DateTime.Now.AddSeconds(30), TimeSpan.Zero);
        return hotwords;
    }
    else
    {
        return (IEnumerable<SearchSum>)data;
    }

    if (Cache["list"] != null)
    {
        TextBox1.Text=Cache["list"].ToString();
    }
    else
    {
        List<MODEL.Aticle> list = new BLL.Aticle().GetAll()[0];
        Cache.Insert("list", list.ATitle, null, DateTime.Now.AddHours(1), TimeSpan.Zero);
    }

  • 相关阅读:
    HelperProvider提供控件的弹出或联机帮助
    弹出层之3:JQuery.tipswindow
    使用重绘项美化WinForm中的控件
    BackgroundWorker在单独的线程上执行操作
    NHibernate学习笔记之一,Hello world!
    FileSystemWatcher 监视指定目录中的变更
    JQuery扩展插件Validate—6radio、checkbox、select的验证
    弹出层之1:JQuery.Boxy (一)
    大文件复制时块的取值问题
    JQuery扩展插件Validate—4设置错误提示的样式
  • 原文地址:https://www.cnblogs.com/Snowolf/p/2458747.html
Copyright © 2011-2022 走看看