- 热门文章:
- · 嘿,懒鬼!!其实MSDN阐述得真得不错哎,不知道你从哪来的资料
- · ASP.NET Caching /1
- · 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- · 最佳ASP.NET编程习惯
- · 一次同时上传多个文件
- · 在datagrid中求和(vb.net,c#)
- · ASP.NET中利用SQLXML WEB服务访问XML数据(转)
- · 在DataGrid中经弹出窗口确认后执行操作(删除)。(附在DataGrid中修改,添加记录)详见代码!!
- · 在datagrid中放入一个DropDownList(忘了这个问题在那里看到的了CSDN or There)
- · 简单的动态加载用户控件的方法
- · 关于如何 确认删除的另外一个办法。
- · 掉掉注意了,如何动态加载用户控件(ascx)
上一篇:ASP.NET中的事务处理和异常处理 >>
ASP.NET Caching /2
依赖可以使键值在文件改变时,或是在某一个指定时间被删除
。让我们看一下每种依赖。
文件依赖(File-based Dependency)
文件依赖是指,当磁盘上的一个文件改变时,删除Cache对象中的对应一项。下面让我们看一个从XML文件中读取数据的例子。
Dim dom As XmlDocument()
dom.Load(Server.MapPath("product.xml")
Cache("ProductData") = dom
当product.xml文件内容改变时,我们应该使Cache中的数据失效。假设product.xml在aspx文件的同一目录中,我们可以使用以下的代码:
Dim dependency as new CacheDependency(Server.MapPath("product.xml"))
Cache.Insert("ProductData", dom, dependency)
在这段代码中,我们建立了一个CacheDependecy类的实例dependency,并将product.xml的路径传给这个实例。然后使用Insert方法建立一个依赖于文件的键值。
时间依赖(Time-based Dependency)
时间依赖就是在指定时间删除Cache对象中的一项。同样我们可以使用Insert方法来加入有时间依赖的键值。
绝对时间—设置一个绝对的时间。例如,10分钟以后,删除此项。
相对时间—当一个Cache有若干时间没有被访问,删除此项。
以下是一段代码,使用相对时间依赖,使得ProductData当有10分钟没有被访问的话,将被删除。每一次对ProductData的访问,都将使ProductData保持另一个10分钟的有效。
@# 10 minute time span
Cache.Insert("ProductData", LoadDataSet(), Nothing, DateTime.MaxValue, TimeSpan.FromSeconds(10))
以上是对Cache API的简单讨论,大家从这里可以看出这套接口的简单易用。ASP.NET使用这套API实现了页面输出缓存。
页面输出缓存(Page Output Caching)
ASP.NET的页面输出缓存将把这个页面的内容放在Cache中。我们已经看过如何将一个数据集放入缓存。那么,能不能将整个页面缓存呢?这样的话,就不需要对每一个请求都执行代码,可以直接从内存中获取结果,这将带来巨大的性能提高。
对页面缓存有两种接口,高层接口和底层接口。这里我们只讨论高层接口。(对于底层接口,可以参考MSDN中的相关文章)
高层接口包括两个页面指示符,一个表明页面刷新的时间间隔,一个表明当某个参数变化时刷新页面。
<%@ OutputCache Duration="10" % VaryByParam="None">
将这个指示符放在页面上部,页面结果将被缓存10秒。10秒以后,这个页面将被重新执行。下面是一个例子。
<%@ OutputCache Duration="10" % VaryByParam="None">
<Script runat="server">
Public Sub Page_Load()
span1.InnerHtml = DateTime.Now.ToString("r")
End Sub
</Script>
<font size=6>The time is: <font color=red><span id="span1" runat="server"/></font></font>
这个页面在第一次请求时被执行一次,显示执行时的时间。这个结果将在缓存里保存10秒。假如我们在10:30:12时请求这个页面,在此后的10秒内,我们将会看到同样的输出。
结论
对于ASP程序员来说,缓存是一项易用而强大的新技术。它的使用和ASP原来的Application,session对象有许多相似的地方,只是在Cache对象中的数据会自动失效。Cache还支持文件,时间的依赖,更是支持回调。缓存技术还被用来实现了页面缓存。
相关文章:
- · 给大家一个新的加密方法,C#的。(国外的,只用于学习,支持中文)
- · TO feixr,DataGrid中的Radiobutton
- · 微软.NET战略和ASP.NET简介(1)
- · 微软.NET战略和ASP.NET简介(3)
- · 微软.NET战略和ASP.NET简介(2)
- · 验证控件介绍--RegularExpressionValidator
- · 验证控件介绍--RangeValidator
- · 验证控件介绍--CompareValidator
- · 验证控件介绍--RequiredFieldValidator
- · 解决分页的例子。使用DataSet绑定到DataList实现的。数据库使用我刚才贴的这个。
- · 配置Config.web
- · WebRequest Class
- · asp.net中使用静态变量
- · 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例 [原创]
- · Creating DataGrid Templated Columns Dynamically - Part II(转自DotNetTips)
- · 用ASP.NET写你自己的代码生成器(2)。
- · 用ASP.NET写你自己的代码生成器(3)。
- · mark新官上任,转贴一个DataGrid(增加删除确认和新增记录功能),道贺:)
- · 一个datagrid 删除确认例子
- · 关于ASP.Net不能启动调试的官方解答
- · 在WEB窗体中如何转换页面和结束程序?
- · 关于ASP.Net写注册表权限问题的官方解决方法
- · 动态生成柱状图
- · 一个SDK里做聊天室的例子(2)
- · 网上下载和上传数据(一) Montaque(原作)
- · 一个SDK里做聊天室的例子(1)
- · 网上下载和上传数据(二) Montaque(原作)
- · 有空的时候看看,:)ASP.NET Page Templates
- · VB.NET开发互联网应用
- · vb.net cookie操作
- · Net中如何操作IIS(原理篇)
- · 关于选用何种ASP.NET设计方法的技巧
- · .Net中如何操作IIS(源代码) (原创)
- · iis 坏掉了,重新安装了以后.netframework 不能用了的解决方法
- · 两个aspx页面间传递引用对象。
- · 在Webcontrol的Toolbar上加入删除确认的方法(改进后)
- · TreeView 派生类: TreeViewEx 实现 NodeShowToolTip、NodeDoubleClick 事件
- · 我自己写的自定义Web的上传控件
