文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 网络编程 >> NET编程 >> 文章内容  
 

 
ASP.NET中使用Caching

www.hx99.org 阅读: 时间:2007-07-12 整理:华西黑盟
------------------------------------------------------------------
 ASP.NET中使用Caching

转贴:chi0591日期:2003-08-29人气:58
  Caching缓存,就是将一些生成代价比较大的常用数据,保存起来重用。一般数据都保存在内存中,因为从内存中读取数据比从数据库等其他地方要快。
  ASP.NET通过两种方式支持缓存:通过CacheAPI存储任意数据,通过页面输出缓存经常被访问的页面。让我们来看一个例子。
  一个电子商务的站点,它的目录一般一周更新一次。站点提供了一套用户界面让客户订购产品。当一个客户浏览目录时,系统将通过网络去查询数据库,进行各种计算,最后返回结果。
  从服务器查询这些目录数据的操作是很频繁的。我们知道,这些数据一周才变化一次。所以以下的几种操作将带来性能上的损失。
1.执行ASP.NET的程序生成对数据库的查询语句。
2.通过网络,和数据库服务器进行通讯。
3.数据库服务器编译执行查询(或是执行储存过程)。
  缓存机制可以减少许多这样的工作,提高应用的性能和伸缩性。我们能缓存结果以便能静态的处理客户请求,来提高性能。同时,由于减少了处理每个请求使用的资源,因此也提高了系统的伸缩性。
  CacheAPI对于ASP开发人员来说,把常用的数据保存在内存里,并不是一个全新的概念。在ASP里,有两个对象完成它。
Session对象
Application对象
  Session用来保存单个用户在多个请求间共享的数据,虽然在ASP.NET中有一些小的改动,但这些改动主要是在应用级的,对Session对象来说,仍然是一个保存键与键值对的集合。Application对象在ASP.NET也被保存下来了,同样是键与键值对的集合。在ASP和ASP.NET中,我们都可以使用以下代码来操作Application 对象

 

Application("SomeInterestingData")="Exampledata"
Response.Write(Application("SomeInterestingData")
我们可以使用同样的方法访问Session对象。
  ASP.NET带来了一个新的键与键值的对象—Cache.除了存储键与键值对外,Cache对象还提供了另外的一些存储短期数据的新功能:
  依赖—当一个键插入Cache对象时,我们可以设置它的依赖性。当依赖的对象改变时,这个键将被删除。现在支持的依赖对象有文件,其他的键和时间。
自动失效—没有依赖的键值,当使用频率不高时,将被自动删除。
  支持回调—当一个键将被删除时,我们可以得到一个事件,在这个事件中来更新键值或取消删除操作。
当我们在使用Cache对象时,必须注意这一点:
使用Cache对象中的键值之前,必须每一次都检查键值是否存在。
  由于在Cache对象中的键值由于其依赖或者使用频率较低,都会被删除,所以,每一次使用Cache中的对象,都必须检查是否存在。
  例如,我们可以用如下一段代码来返回DataSet.

 

PrivateFunctionLoadDataSet()AsDataSet
  DimsqlConnectionAsSQLConnection
  DimsqlAdapaterAsSQLDataSetCommand
  DimdatasetProductsAsNewDataSet()
  DimsqlDSNAsString
  DimsqlSelectAsString

  "ConnectionStringandSelectstatement
  sqlDSN="server=localhost;uid=sa;pwd=;database=grocertogo"
  sqlSelect="Select*FromProducts"

  "Connect
  sqlConnection=newSQLConnection(sqlDSN)
  sqlAdapater=newSQLDataSetCommand(sqlSelect,sqlConnection)

  "Filldatasetcreateproducttable
  sqlAdapter1.FillDataSet(datasetProducts,"products")

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

 

PublicFunctionGetProductData()AsDataSet
  If(IsNothing(Cache("ProductData"))Then
    Cache("ProductData")=LoadDataSet()

  ReturnCache("ProductData")
EndFunction
  Cache对象在许多地方和Application对象有许多相似之处,而最大的不同是Cache支持了依赖。

   -------------------------------------------------------------------------------------------
  上一篇:ASP.NET中水晶报表的使用
  下一篇:ASP.NET中如何防范SQL注入式攻击
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
推荐:ASPX一句话木马--终
利用ASP.Net 动态生成HTML
asp.net实现验证码
在asp.net中利用session做
Asp.net 中在客户端触发服
Asp.net 中服务端控件事件
ASP.NET上传图片并生成可
ASP.NET AJAX解决网页打开
实现IE浏览器部分菜单命令
Asp.net一夜速成教程
从sqlserver中读取图片
ASP.NET页面间的传值的几
用动态属性和DataView实现
用PagedDataSource类实现D
关于TreeView控件专题
asp.net上传图片并同时生
ASP.NET中水晶报表的使用
ASP.NET 中 Cookie 的基本
ADO.NET使用经验集
Forms身份验证
ASP.NET四种页面导航方式
ASP.NET中如何防范SQL注入
[分享]ASP.NET学习手记```
ASP.NET编程中的十大技巧
用ASP.NET上传图片并生成
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号