ASPNT缓存的使用.ppt

上传人:小飞机 文档编号:6501786 上传时间:2023-11-07 格式:PPT 页数:29 大小:224.99KB
返回 下载 相关 举报
ASPNT缓存的使用.ppt_第1页
第1页 / 共29页
ASPNT缓存的使用.ppt_第2页
第2页 / 共29页
ASPNT缓存的使用.ppt_第3页
第3页 / 共29页
ASPNT缓存的使用.ppt_第4页
第4页 / 共29页
ASPNT缓存的使用.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《ASPNT缓存的使用.ppt》由会员分享,可在线阅读,更多相关《ASPNT缓存的使用.ppt(29页珍藏版)》请在三一办公上搜索。

1、第15章 ASP.NT缓存的使用,郑州信息科技职业学院 张中兴,本章内容包括:ASP.NET 2.0缓存的概述。页面输出缓存。页面部分缓存。应用程序数据缓存。SQL数据依赖缓存。配置缓存。,15.1 ASP.NET缓存概述,有过实际开发经验的读者应该知道,从数据库中检索数据可能是在Web站点上执行的最慢的操作之一。如果能够将数据库中的数据缓存到内存中,就无需在请求每个页面时都访问数据库,从而可以大大提高应用程序的性能。当一个相同的网页被不同的用户频繁请求时,可以通过把整个网页放入内存来提高执行效率。,不使用缓存处理,送显,执行动态代码,提交用户请求,Server,User,使用缓存的处理,送显

2、,User,提交用户请求,是否存在相同请求?,存在:调用已被缓存的静态页,不存在:执行动态代码,缓存静态页,15.2 页面输出缓存,页面输出缓存是一种最简单的缓存机制,其基本原理是将经常被用户访问的页面缓存到内存或硬盘中,当用户再次请求时,不需要再次执行相应代码,而是直接把生成过的HTML页面送到发出请求的客户端显示。好处:将原先服务器端响应的三部分(接受请求、生成HTML,发送HTML)变为两部分(接受请求、发送HTML),将最耗时耗资源的第二部分省略,因而可以大大提高应用程序的性能。默认情况下页面输出缓存是打开的,但是要对某些请求进行缓存,还需要开发者进行定制。一旦页面输出缓存被定制过,那

3、么这个网页就会在第一次被访问的时候生成缓存(Cache),直到请求过期为止。页面输出缓存的定制方法有两种:一种是高层的OutputCache技术;另外一种基于底层的API技术,其编程难度相对较大。,15.2.1使用OutputCache指令,指令代码如下:,例15.1:通过使用OutputCache指令定义一个缓存页,显示当前时间,当页面被缓存之后,刷新时60秒内当前时间显示不发生变化。protected void Page_Load(object sender,EventArgs e)TimeMsg.Text=DateTime.Now.ToString();Using the Output

4、Cache 最后发生于:,例15.2:通过使用OutputCache定义一个缓存页,根据参数“state”不同而缓存不同数据页,并显示生成缓存时间。当页面被缓存之后,刷新时根据参数“state”而生成的页面的显示内容在60秒内将不发生变化。参见VaryByPostBack.aspx。protected void Page_Load(object sender,EventArgs e)TimeMsg.Text=DateTime.Now.ToString();说明:本地运行,对浏览速度的感觉并不明显。,例15.3:使用硬盘OutputCache缓存数据,并显示生成缓存时间。代码如下所示:参见Dis

5、k.aspx protected void Page_Load(object sender,EventArgs e)TimeMsg.Text=DateTime.Now.ToString();,15.2.2 使用API,可以通过在API函数中设置类的属性设置缓存。例如:protected void Page_Load(object sender,EventArgs e)Response.Cache.SetExpires(DateTime.Now.AddSeconds(60);Response.Cache.SetCacheablity(HttpCacheablity.Publish);TimeMs

6、g.Text=DateTime.Now.ToString();说明:SetExpires方法用来设置缓存的绝对时间,相当于Duration=“60”SetCacheablity控制在网络上缓存文档的方式。相当于VaryByParam=none,15.2.3 页面输出缓存应用,页面部分缓存(Page Fragment Caching)可以指定网页中的某一个控件或某一个区域不被缓存。例15.7:通过返回参数改变页面内容。/下面DataCtrl.ascx文件类中声明一个用户自定义控件,并声明了60秒的数据缓存功能。protected void Page_Load(object sender,Even

7、tArgs e)TimeMsg.Text=DateTime.Now.ToString();说明:该自定义控件显示一个当前页面访问的时间戳,由于具有60秒缓存功能,60秒内的重复访问,时间将是不变的值。,下面Frag.aspx文件中使用到了前面定义的用户控件,整个页面不使用缓存。protected void Page_Load(object sender,EventArgs e)TimeMsg.Text=DateTime.Now.ToString();上面页面中分别使用自定义控件和普通标签显示两个时间戳,由于用户自定义控件具有缓存功能,在60秒内反复访问时,用户自定义控件的时间戳将是固定内容。,

8、15.4 应用程序数据缓存,例8、应用程序数据缓存,通过对DataSet对象进行缓存页面示例。看下面的程序。protected void Page_Load(object sender,EventArgs e)DataView Source;Source=(DataView)Cache“MyDataSet”;/从Cache中取数据 if(Source=null)/Cache中不存在,则填充 SqlConnection MyConnection=new SqlConnection(ConfigurationManager.ConnectionStringsCacheDemoConnectionS

9、tring.ConnectionString);SqlDataAdapter MyCommand=new SqlDataAdapter(select*from authors,MyConnection);DataSet ds=new DataSet();MyCommand.Fill(ds,authors);Source=new DataView(ds.Tablesauthors);CacheMyDataSet=Source;CacheMsg.Text=Dataset created explicitly;else CacheMsg.Text=Dataset retrieved from cac

10、he;MyGrid.DataSource=Source;MyGrid.DataBind();MyDataSet其实就是一个缓存在客户端的XML文件,因此再次访问速度会很快。,15.5 SQL数据依赖缓存,上面介绍的数据缓存技术一旦缓存时间到,无论服务器端的数据是否被改变,都会释放缓存,这种特性可能并不符合我们的实际需求。SQL Server支持数据依赖缓存,通过配置数据库连接池,实现只有当数据库数据被改变的时候,缓存才会改变。参见教材P357和P358。,15.6 配置缓存,在实际开发中,开发人员可以通过在Web.Config里配置不同的缓存描述,在页面中调用该描述来减少重复定义缓存描述的工作量。例10、配置缓存,利用Web.Config配置不同的缓存描述。下面页面指定使用配置文件中的配置内容在配置文件中CacheProfile的值被定义为:即,前面的页面中相当于使用了duration=60,下面是详细的配置文件定义,本章结束!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号