ASP.NET 数据缓存

数据缓存

课程目标

数据缓存概述

页面输出缓存

页面部分缓存

应用程序缓存

缓存概述

缓存是一种在计算机中广泛用来提高性能的技术,他将访问频率高或构造成本高的数据保留在内存中。Web应用程序缓存用于在HTTP请求时保留页或者数据,并在新创建的情况下多次使用。一旦应用程序停止或者重新启动,缓存会被清除。

声成高性能、可缩放的Web应用程序最重要的的因素之一是能够在首次请求时将存储在内存中,不管是数据对象还是页的某个部分。

页面输出缓存

页面输出缓存作为最简单的缓存形式,将已经生成的动/静态页面全部内容保存在服务器内存中。当请求时,系统将缓存中的相关数据直接输出,直到缓存过期。缓存不需要经过页面处理生命周期,可以缩短请求的响应时间提高性能。

设置页面输出缓存的两种方式:

[email protected]指令

2.页面输出缓存API--HttpCachePolicy类

@OutPutCache指令:ASP.NET中的输出缓存可以使用服务器的内存将处理和显示页面的输出缓存起来。启动页面缓存机制的方法只需要在页面的顶部添加一个@OutPutCache指令,就可以将缓存页面输出:

@OutPutCache指令的常用属性:





HttpCachePolicy类

使用@HttpCachePolicy指令实现对于输出缓存的各项设置,同时还可以使用输出缓存API来编程设置页面输出缓存。这种使用编程来设置页面输出缓存的方法的核心是调用System.Web.HttpCachePolicy。该类主要包含用于设置缓存特定的HTTP标头的方法和用于控制ASP.NET页面输出缓存的方法。

页面缓存API的HttpCachePolicy类的使用方法:

Response.Cache.SetExpires(DateTime.Now.AddSeconds(30));

Response.Cache.SetExpires(DateTime.Parse("19:00:00");

Response类的Cache属性用于获取页面缓存策略,该属性的类型是HttpCachePolicy。可以通过调用Response.Cache实例,进而实现对与当前页面输出缓存的设置。

页面部分缓存

页面部分缓存是指输出页面的某些部分,而不是缓存整个页面内容。实现页面部分缓存有两种机制:一种是空间缓存。另一种是缓存后替换。

控件缓存

控件缓存是通过用户控件来实现局部页面缓存机制的。控件缓存类似于页面输出缓存,他们使用相同的指令@OutPutCache

缓存后替换

ASP.NET页面中既包含静态内容,又包含基于数据库的动态内容。静态内容通常不会发生变化。因此,静态内容对数据缓存是非常必要的。基于数据的动态不同,数据库中的数据可能每时每刻都在发生变化,如果用动态数据进行缓存,肯能会造成数据不能及时更新。使用Substitution控件能够指定页面输出缓存中需要以动态内容替换该控件的部分,对整个页面进行输出缓存,使用Substitution控件指定页面中免于缓存的部分。在使用Substitution控件时,将整个页面缓存起来,需要动态改变内容的地方用Substitution控件代替即可。属性用于获取或者设置当Substitution控件执行时为回调而调用的方法名称,有三点:

1.该方法必须被定义为静态方法

2.该方法必须接受HttpContext类型的参数

3.该方法必须返回String类型的值

页面输出缓存也页面部分缓存的代码如下:

打开“Microsoft Visual Studio 2010”之前,要先编写数据库。

首先打开“Microsoft Visual Studio 2010”,点击“文件”--“新建”--“项目”,弹出“新建项目”模版,在模版中选择“web”--“ASP.NET应用程序”,点击“确定”。然后再标题头输入“<%@ OutputCache Duration="1" VaryByParam="none" %>”,之后绑定数据库(图1),之后在后台编写代码(图2),然后就是运行(图3)。

                                                      图1


图2

图3

这是创建的页面输出缓存,页面部分缓存是在“WebApplication1”右键点击“添加”--“新建项”,弹出模版,选择“Web用户控件”,点击“添加”,绑定成绩表(图4),之后在后台编写(图5),然后再添加一个webForm窗体,把创建的“Web用户控件”拉到“Webform”中(图6),然后点击在运行(图7)。

                                         图4


                                      图5


                                    图6

图7

之后就是Substitution控件的用法,添加一个新的“Webform”项目,在页面代码中输出指令(图8),在后台编写(图9),运行(图10)。

                                                  图8


                  图9                                                                                                                图10


应用程序数据缓存

页面输出缓存和页面部分缓存可以将页面整体或者其中的部分存储到内存中。应用程序数据缓存的主要功能是在内存中存储各种也应用程序相关的对象。

Cache类

应用程序数据缓存有Cache类实现,该类属于命名空间System.Web.Caching。

Cache类的主要方法:


add方法与insert方法

添加一个新的“Webform”项目,在页面中拖三个控件(图11),然后一个一个控件点击进入后台代码(图12),之后运行结果为(图13,图14,图15,图16):

                                                   图11


                                           图12


           图13                                         图14                                      图15                              图16