欢迎光临
我们一直在努力

ASP.NET中使用Caching-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

  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支持了依赖。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP.NET中使用Caching-.NET教程,Asp.Net开发
分享到: 更多 (0)