ASP.NET缓存的种类及特点浅析

开发 后端
ASP.NET缓存有几种呢?ASP.NET缓存支持的又有什么呢?我们将会在这篇文章中向你细细讲解。

ASP.NET 2.0提供了一些新的用于提升程序性能的技术特性,其中,缓存技术是非常重要的一个特性,它提供了一种非常好的本地数据缓存机制,可以非常容易的定制属于数据缓从,从而有效的提高数据访问的性能。

缓存有一个不太容易克服的缺点,那就是数据过期的问题。最典型的情况是,如果将数据库表中的数据内容缓存到服务器内存中,当数据库表中的记录发生更改时,Web应用程序则很可能显示过期的、不准确的数据。对于某些类型的数据,即使显示的信息过期,影响也不会很大。然而,对于实时性要求比较严格的数据,例如,股票价格、拍卖出价之类信息,显示的数据稍有过期都是不可接受的。

ASP.NET 2.0支持以下几种缓存

ASP.NET缓存之页面输出缓存

页面输出缓存是最为简单的缓存机制,该机制将整个 ASP.NET页面内容保存在服务器内存中。当用户请求该页面时,系统从内存中输出相关数据,直到缓存数据过期。在这个过程中,缓存内容直接发送给用户,而不必再次经过页面处理生命周期。通常情况下,页面输出缓存对于那些包含不需要经常修改内容的,但需要大量处理才能编译完成的页面特别有用。需要读者注意的是,页面输出缓存是将页面全部内容都保存在内存中,并用于完成客户端请求。

ASP.NET缓存之页面部分缓存

页面部分缓存是指输出缓存页面的某些部分,而不是缓存整个页面内容。实现页面部分缓存有两种机制:一种是将页面中需要缓存的部分置于用户控件(.ascx 文件)中,并且为用户控件设置缓存功能(包含用户控件的页面可设置也可不设置缓存)。这就是通常所说的“控件缓存”。设置控件缓存的实质是对用户控件进行缓存配置。主要包括以下3种方法:一是使用@ OutputCache指令以声明方式为用户控件设置缓存功能,二是在代码隐藏文件中使用PartialCachingAttribute类设置用户控件缓存;三是使用ControlCachePolicy类以编程方式指定用户控件缓存设置。另外,还有一种称为“缓存后替换”的方法。该方法与控件缓存正好相反,将页面中的某一部分设置为不缓存,因此,尽管缓存了整个页面,但是当再次请求该页时,将重新处理那些没有设置为缓存的内容。

ASP.NET缓存之应用程序数据缓存

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

ASP.NET缓存之缓存依赖

Net 2.0引入的自定义缓存依赖项,特别是基于MS-SQL Server的SqlCacheDependency特性,使得我们可以避免“数据过期”的问题,它能够根据数据库中相应数据的变化,通知缓存,并移除那些过期的数据

缓存功能也有其自身的不足。例如,显示的内容可能不是最新、最准确的,为此,必须设置合适的缓存策略。又如,缓存增加了系统的复杂性并使其难于测试和调试,因此建议在没有缓存的情况下开发和测试应用程序,然后在性能优化阶段启用缓存选项。

ASP.NET缓存的相关就介绍到这里,希望对你了解ASP.NET缓存有所帮助。

【编辑推荐】

  1. ASP.NET基础教程之个性化特点浅析
  2. ASP.NET HTML控件学习的浅析
  3. ASP.NET获取MAC地址与IP地址的程序浅析
  4. ASP.NET实现静态页面方法浅析
  5. ASP.NET连接字符串的遍历浅析
责任编辑:仲衡 来源: CSDN博客
相关推荐

2009-08-03 18:35:51

ASP.NET数据缓存

2009-10-10 10:44:15

ASP.NET页面缓存

2009-07-31 09:47:57

ASP.NET缓存

2009-07-31 09:57:47

ASP.NET数据库缓

2010-08-06 08:50:21

ASP.NET

2009-07-31 09:32:04

ASP.NET缓存概念ASP.NET缓存应用

2009-07-27 15:34:11

MembershipASP.NET

2009-07-23 16:55:55

ASP.NET特点

2009-07-27 10:18:12

TypeResolveASP.NET

2009-07-27 15:52:21

ASP.NET特点ASP.NET概述

2009-08-05 18:36:12

ASP.NET Che

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 15:50:13

ASP.NET优点

2009-07-31 12:43:59

ASP.NET MVC

2009-07-22 18:03:00

ASP.NET ASP

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计

2009-08-04 14:18:49

ASP.NET邮件列表

2009-07-29 14:12:45

ASP.NET tra

2009-07-28 10:59:13

ASP.NET IIS

2009-07-27 17:25:53

ASP.NET验证控件
点赞
收藏

51CTO技术栈公众号