缓存技术及在RainbowPortal的应用

缓存技术及在RainbowPortal的应用,第1张

缓存技术及在RainbowPortal的应用,第2张

1.ASP.NET缓存技术概述

如果数据库中的数据缓存在内存中(或存储在其他地方),就没有必要在每次请求每个页面时都访问数据库。因为从内存返回数据的速度总是比新提供的数据快,所以可以大大提高应用程序的性能。

ASP.NET为您提供了使用缓存技术的灵活性。您可以缓存整个HTML页面、HTML页面的一部分或各种对象。您可以设置一个过期策略,或者设置一个依赖关系,即当其他资源(如文件或数据库表)发生变化时,自动移出缓存。

ASP中有两个基本的缓存。网络:

输出缓存

输出缓存是最简单的缓存机制,它将整个ASP.NET页面内容保存在服务器内存中。当用户请求页面时,系统从内存中输出相关数据,直到缓存的数据过期。在这个过程中,缓存的内容直接发送给用户,而不需要再次经过页面处理生命周期。一般来说,页面输出缓存对于包含不需要频繁修改但需要大量处理才能编译的内容的页面特别有用。应该注意,页面输出缓存将页面的所有内容保存在内存中,并用于完成客户端请求。

您可以在Web.config中配置它,设置缓存策略,并在一组ASP.NET页面中使用它。还可以通过HttpCachePolicy以编程方式设置页面缓存。

数据缓存

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

同时,基于上述缓存模型,有两种特殊的缓存:

部分缓存

缓存的一部分本质上是一个输出缓存。顾名思义,部分页面缓存将部分页面内容保存在内存中以响应用户请求,而其余的页面内容是动态的。实现部分页面缓存有两种方式:控件缓存和替换后缓存。前者也可以称为片段缓存,允许将要缓存的信息包含在一个用户控件中,然后将用户控件标记为可缓存,从而缓存部分页面输出。这样就缓存了页面中的特定内容而不是整个页面,所以每次都需要重新创建整个页面。例如,如果您想要创建一个显示大量动态内容(如股票信息)的页面,其中一些是静态内容(如每周摘要),那么您可以将静态部分放在用户控件中,并允许缓存这些内容。缓存后替换与控件缓存相反。这样,整个页面都被缓存,但是页面中的所有段都是动态的。例如,如果要创建一个在指定时间段内保持静态的页面,可以将整个页面设置为缓存。如果将显示用户名的Label控件添加到页面中,则每次页面刷新和每个用户的标签内容都将保持不变,并且在缓存页面之前请求页面的用户名将始终显示。使用缓存后替换机制,您可以配置要缓存的页面,并将页面的各个部分标记为不可缓存。在这种情况下,您可以将Label控件添加到不可缓存的部分,这将为每个用户和每个页面请求动态创建。

数据源缓存

数据源缓存是指缓存数据源控件中的数据,如sqldatasource、objectdatasource和xmldatasource。它实际上是数据缓存,但缓存是在控件内部实现的。

缓存依赖

缓存依赖允许缓存项依赖于另一个资源,这样当资源改变时,缓存项会自动移出。

ASP.NET有三种类型。

依赖于其他缓存条目

依赖于文件或文件夹

取决于数据库查询。

您还可以使用聚合依赖项或自定义缓存依赖项。

缓存功能也有自己的缺点。例如,显示的内容可能不是最新和最准确的,因此必须设置适当的缓存策略。缓存增加了系统的复杂性,使测试和调试变得困难。断点、监控变量等。由于缓存,您设置的可能在调试时无效。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 缓存技术及在RainbowPortal的应用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情