学习坊广告 网站建设咨询电话0711-5903333 、 QQ:215665888        将学习坊设为主页     广告赞助QQ:410899793     主页申请

ASP.NET中使用Caching

来源:网络 【www.cn0711.net】   作者:未知【学习坊转】 [字体: ]
【导读】ASP.NET通过两种方式支持缓存:通过Cache API存储任意数据,通过页面输出缓存经常被访问的页面

Caching缓存,就是将一些生成代价比较大的常用数据,保存起来重用一般数据都保存在内存中,因为从内存中读取数据比从数据库等其他地方要快

ASP.NET通过两种方式支持缓存:通过Cache API存储任意数据,通过页面输出缓存经常被访问的页面让我们来看一个例子

一个电子商务的站点, 它的目录一般一周更新一次站点提供了一套用户界面让客户订购产品当一个客户浏览目录时,系统将通过去查询数据库,进行各种计算,最后返回结果

服务器查询这些目录数据的操作是很频繁的我们知道,这些数据一周才变化一次所以以下的几种操作将带来性能上的损失

1. 执行ASP.NET的程序生成对数据库的查询语句

2. 通过,和数据库服务器进行通讯

3. 数据库服务器编译执行查询(或是执行储存过程)

缓存机制可以减少许多这样的工作,提高应用的性能和伸缩性我们能缓存结果以便能静态的处理客户请求,来提高性能同时,由于减少了处理每个请求使用的资源,因此也提高了系统的伸缩性

Cache API对于ASP开发人员来说,把常用的数据保存在内存里,并不是一个全新的概念在ASP里,有两个对象完成它

Session 对象

Application 对象

Session用来保存单个用户在多个请求间共享的数据,虽然在ASP.NET中有一些小的改动,但这些改动主要是在应用级的,对Session对象来说,仍然是一个保存键与键值对的集合Application对象在ASP.NET也被保存下来了,同样是键与键值对的集合在ASP和ASP.NET中,我们都可以使用以下代码来操作Application 对象







Application("SomeInterestingData") = "Example data"

Response.WrITe(Application("SomeInterestingData")

我们可以使用同样的方法访问Session对象

ASP.NET带来了一个新的键与键值的对象—Cache.除了存储键与键值对外,Cache对象还提供了另外的一些存储短期数据的新功能:依赖—当一个键插入Cache对象时,我们可以设置它的依赖性当依赖的对象改变时,这个键将被删除现在支持的依赖对象有文件,其他的键和时间自动失效—没有依赖的键值,当使用频率不高时,将被自动删除支持回调—当一个键将被删除时,我们可以得到一个事件,在这个事件中来更新键值或取消删除操作 

当我们在使用Cache对象时,必须注意这一点:使用Cache对象中的键值之前,必须每一次都检查键值是否存在由于在Cache对象中的键值由于其依赖或者使用频率较低,都会被删除,所以,每一次使用Cache中的对象,都必须检查是否存在例如,我们可以用如下一段代码来返回DataSet.

Private Function LoadDataSet() As DataSet

Dim sqlConnection As SQLConnection

Dim sqlAdapater As SQLDataSetCommand

Dim datasetProducts As New DataSet()

Dim sqlDSN As String

Dim sqlSelect As String

" Connection String and Select statement

sqlDSN = "server=localhost;uid=sa;pwd=;database=grocertogo"

sqlSelect = "Select * From Products"

" Connect

sqlConnection = new SQLConnection(sqlDSN)

sqlAdapater = new SQLDataSetCommand(sqlSelect, sqlConnection)

" Fill dataset create product table

sqlAdapter1.FillDataSet(datasetProducts, "products")

Return products

End Function

我们很容易用Cache对象来改写这段代码,使只在DataSet不存在在Cache中才调用LoadDataSet()

Public Function GetProductData() As DataSet

If (IsNothing(Cache("ProductData")) Then

Cache("ProductData") = LoadDataSet()

Return Cache("ProductData")

End Function
Cache对象在许多地方和Application对象有许多相似之处,而最大的不同是Cache支持了依赖。




 

录入:学习坊

查看对 ASP.NET中使用Caching 的评论 【 发表见解 】 【 查看见解 】 【 打印资料 】  
上一篇:一个ASP.NET的进度条
下一篇:ASP.net发送Email
百度中>“ASP.NET中使用Caching”相关内容 google中>“ASP.NET中使用Caching”相关内容
雅虎中>“ASP.NET中使用Caching”相关内容 搜狗中>“ASP.NET中使用Caching”相关内容
中搜中>“ASP.NET中使用Caching”相关内容 爱问中>“ASP.NET中使用Caching”相关内容