当前位置:  编程技术>.net/c#/asp.net

VB.NET中Caching的使用方法

    来源: 互联网  发布时间:2014-10-19

    本文导语:  ASP.NET通过两种方式支持缓存:通过Cache API存储任意数据,通过页面输出缓存经常被访问的页面。让我们来看一个例子。 一个电子商务的站点, 它的目录一般一周更新一次。站点提供了一套用户界面让客户订购产品。当一个客...

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

    
 
 

您可能感兴趣的文章:

  • iis支持asp.net4.0的注册命令使用方法
  • .net4.0中tuple元组的使用方法
  • ASP.NET使用Subtract方法获取两个日期之间的天数
  • 请教:使用java.net中httpURLConnection类模拟post方法?、、全部分数送上!
  • ?请教:十万火急使用java.net中httpURLConnection类模拟post方法?、、全部分数送
  • asp.net错误捕获(错误处理)page_error事件使用方法
  • log4net配置和使用方法分享
  • asp.net使用URLRewriter.dll进行重写的方法举例
  • ASP.NET网站伪静态下使用中文URL的方法
  • asp.net字符串分割函数使用方法分享
  • asp.net中的*.ashx类型的文件使用方法简单
  • 关于C# 5.0 CallerMemberName CallerFilePath CallerLineNumber 在.NET4中的使用介绍方法
  • C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)
  • .NET的file文件上传控件使用方法 修改web.config文件上传大文件
  • asp.net使用ashx实现图片防盗链的方法
  • .Net消息队列的使用方法
  • .NET中保证线程安全的高级方法Interlocked类使用介绍
  • asp.net数据绑定DataBind使用方法
  • GMap.Net开发之自定义Marker使用方法
  • asp.net后台如何输出js脚本使用什么方法可以实现
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.net类socketfactory的类成员方法: createsocket定义及介绍
  • asp.net post方法中参数取不出来的解决方法
  • java命名空间java.net类datagramsocket的类成员方法: disconnect定义及介绍
  • 重新注册asp.net 2.0的方法
  • java命名空间java.net类datagramsocket的类成员方法: close定义及介绍
  • .net后台获取html控件值的2种方法
  • java命名空间java.net接口cookiestore的类成员方法: get定义及介绍
  • c#.net防止按F5刷新页面重复提交的方法
  • java命名空间java.net类socket的类成员方法: isbound定义及介绍
  • asp.net 禁用viewstate(web.config中配置)的方法
  • java命名空间java.net类datagrampacket的类成员方法: getsocketaddress定义及介绍
  • .net获取js中值的方法
  • java命名空间java.net类multicastsocket的类成员方法: getinterface定义及介绍
  • asp.net Control控件常用的属性与方法
  • java命名空间java.net类httpurlconnection的类成员方法: method定义及介绍
  • c#(asp.net)接收存储过程返回值的方法
  • java命名空间java.net枚举proxy.type的类成员方法: http定义及介绍
  • asp.net 超时设置的方法介绍
  • java命名空间java.net类urisyntaxexception的类成员方法: getreason定义及介绍
  • ASP.NET 回发密码框清空问题处理方法
  • java命名空间java.net类datagramsocketimpl的类成员方法: getlocalport定义及介绍
  • asp.net 参数不同共用一个页面的实现方法
  • java命名空间java.net类malformedurlexception的类成员方法: malformedurlexception定义及介绍
  • .NET版的ExtJS库 Ext.Net
  • java命名空间java.net类unknownserviceexception的类成员方法: unknownserviceexception定义及介绍
  • node.js的.net扩展 node.net
  • java命名空间java.net类authenticator的类成员方法: getrequestingscheme定义及介绍
  • 为什么输http://www.china-java.net,会自动改为http://www.china-java.net:8081?
  • java命名空间java.net类socketimpl的类成员方法: port定义及介绍
  • 各位之不知道net-snmp是否收费?我的产品中用到了net-snmp lib是否需要向什么单位或者组织付费?
  • java命名空间java.net类datagramsocketimpl的类成员方法: close定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3