zoukankan      html  css  js  c++  java
  • ASP.NET缓存:概述

         缓存技术的应用是架构高性能、可收缩WEB应用程序的重要因素之一。它可以将数据对象、页、页的某部分缓存或者存储在web服务器、请求流的代理服务器或浏览器上,避免重新创建满足先前请求的信息,尤其是那些需要大量处理器时间或资源的信息。

         ASP.NET提供了页输出缓存和应用程序缓存两种基本缓存机制。

    • 页输出缓存

         页输出缓存在内存中存储处理后的 ASP.NET 页的内容。 这可让 ASP.NET 向客户端发送页响应,而不必再次经过页处理生命周期。 页输出缓存对于那些不经常更改,但需要大量处理才能创建的页特别有用。 例如,如果创建大通信量的网页来显示不需要频繁更新的数据,页输出缓存则可以极大地提高该页的性能。 可以分别为每个页配置页缓存,也可以在 Web.config 文件中创建缓存配置文件。利用缓存配置文件,只定义一次缓存设置就可以在多个页中使用这些设置。

         页输出缓存提供了两种页缓存模型:整页缓存和部分页缓存。 整页缓存将保留页的全部内容,并使用缓存页内容来完成客户端请求。 分页缓存将保留页的指定部分,并允许动态创建页的其他部分。

         部分页缓存可采用两种工作方式:控件缓存和缓存后替换。 控件缓存有时也称为分段缓存,这种方式允许将信息包含在一个用户控件内,然后将该用户控件标记为可缓存的,以此来缓存页输出的部分内容。 这一方式可缓存页中的特定内容,并不缓存整个页,因此需要在每个请求上重新创建整个页。 例如,如果要创建一个显示大量动态内容(如股票信息)的页,其中有些部分为静态内容(如每周总结),这时可以将静态部分放在用户控件中,并指定已缓存这些内容。

         缓存后替换与控件缓存正好相反。 这种方式缓存整个页,但页中的各段都是动态的。 例如,如果要创建一个在规定时间段内为静态的页,则可以将整个页设置为进行缓存。 如果向页添加一个显示用户名的 Lable控件,则对于每次页刷新和每个用户而言,Label的内容都将保持不变,始终显示缓存该页之前请求该页的用户的姓名。 但是,使用缓存后替换机制,可以将页配置为进行缓存,但将页的个别部分标记为不可缓存。 在此情况下,可以向不可缓存部分添加 Label控件,这样将为每个用户和每次页请求动态创建这些控件。

    • 应用程序缓存 

         应用程序缓存提供了一种编程方式,可通过键/值对将任意数据存储在内存中。 使用应用程序缓存与使用应用程序状态类似。 但是,与应用程序状态不同的是,应用程序缓存中的数据是易失的, 即数据并不是在整个应用程序生命周期中都存储在内存中。 使用应用程序缓存的优点是由 ASP.NET 管理缓存,它会在项过期、无效、或内存不足时移除缓存中的项。 还可以配置应用程序缓存,以便在移除项时通知应用程序。

         使用应用程序缓存的模式是,确定在访问某一项时该项是否存在于缓存中,如果存在,则使用。 如果该项不存在,则可以重新创建该项,然后将其放回缓存中。 这一模式可确保缓存中始终有最新的数据。

  • 相关阅读:
    FZU 2112 并查集、欧拉通路
    HDU 5686 斐波那契数列、Java求大数
    Codeforces 675C Money Transfers 思维题
    HDU 5687 字典树插入查找删除
    HDU 1532 最大流模板题
    HDU 5384 字典树、AC自动机
    山科第三届校赛总结
    HDU 2222 AC自动机模板题
    HDU 3911 线段树区间合并、异或取反操作
    CodeForces 615B Longtail Hedgehog
  • 原文地址:https://www.cnblogs.com/wanghonghu/p/2520297.html
Copyright © 2011-2022 走看看