ASP.NET2.0的缓存控件和地址映射

原创 2007年10月01日 21:39:00
在asp.net 2.0中,引入了很多新的控件和功能,比起之前的asp.net 1.0 和asp.net 1.1,有了革命性的改变。本文将简单介绍其中的两个新的功能:缓存功能和地址映射功能。本文以.net framework 2.0 和visual web developer 2005 beta 为工具,介绍这两个新增的功能。

  一 Substitution缓存控件

  在asp.net 2.0之前的.net 版本中,可以引入缓存功能,将大大增强应用程序的性能。但唯一不足的是,一旦使用缓存功能的话,一般都是全部使用缓存,但在有的应用中,有的时候可能需要只对页面的某些控件内容使用缓存,而其他部分将不使用缓存功能,不使用缓存功能的控件将实时地获得服务器上最新的内容。比如,一个web应用中,一些固定的网页信息,如页面底部的版权信息,或者是一些不是经常更新的信息,可以使用缓存功能,但一些比较实时的信息,如股票价格走势图等,就不能使用缓存功能了。这种情况下,以往的asp.net 比较难实现,但在asp.net 2.0中,可以通过简单使用substitution缓存控件就可以实现了。下面讲解一下,如果在一个使用了缓存功能的页面中,如何通过substitution控件使某些部分控件不应用缓存。

  下面举个简单的例子。在这个例子中,将显示两个时间,其中一个时间显示是应用了缓存功能的,设定的缓存时间是30秒,另一个显示的时间则并没有应用缓存功能,会随着页面的每次刷新获得最新的时间,代码如下:

<%@ outputcache duration="30" varybyparam="none" %>
<script runat="server" language="VB">
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
 CachedDate.Text = DateTime.Now.ToString()
End Sub

Shared Function GetCurrentDate(ByVal context As HttpContext) As String
 Return DateTime.Now.ToString()
End Function
</script>
<html>
 <head id="Head1" runat="server">
 <title>substitution例子</title>
</head>
<body>
 <form id="Form1" runat="server">
  <p>下面的时间显示没有使用缓存功能</p>
  <asp:substitution id="Substitution1" methodname="GetCurrentDate" runat="Server">
  </asp:substitution>

  下面的时间显示使用了缓存功能,只有在30秒后才改变:

<asp:label id="CachedDateLabel" runat="Server"></asp:label>

<asp:button id="Refresh" text="刷新页面" runat="Server">
</asp:button>
</form>
</body>
</html>

  下图是运行的结果

 

  运行程序后,每次刷新页面,则会看到,没有使用缓存功能的时间控件,每次都会获得最新的时间,而使用了缓存功能的时间控件,每隔30秒才显示最新的时间,其余均保持上一次显示的时间不变。

  请注意,在该页面中,页面开头是使用了<%@ outputcache duration="30" varybyparam="none" %>,对页面使用缓存功能的,而只是简单的拖拉一个substitution控件,则实现了部分不缓存的功能。在

<asp:substitution id="Substitution1"
methodname="GetCurrentDate"
runat="Server">

  中,methodname调用的是一个方法,该方法中,可以写入哪些内容是不使用缓存功能的,本方法中返回的是字符串。注意,substitution控件中的methodname中调用的方法必须是静态方法,而且传入的参数必须是HttpContext.
二 ASP.NET 2.0的URL映射功能

  在asp.net 2.0中,在web.config文件中,新增加了url映射功能。什么是url映射功能呢?举个例子,比如,原来你的首页的程序是homedefault.aspx,但是,你改边了其命名,改为default.aspx,那么,为了让用户能继续用default.aspx能访问你的web应用,就可以使用url映射功能。首先,在web.config文件中,url映射的语法如下:

 

<urlMappings enabled="[true|false]">
<add url="url1" mappedUrl="url2"/>
</urlMappings>

  其中,当enabled设置为true时,则允许进行url地址映射,false的话则不允许参数url1表示的是旧的url地址,url2表示新的要映射的目的url地址,以我们的例子为例,则是

<urlMappings enabled="true">
<add url="~/homedefault.aspx" mappedUrl="~/default.aspx"/>
</urlMappings>

  则其效果为,当用户使用homedefault.aspx访问你的web应用时,系统会自动将地址映射到default.aspx,从而可以是用户正确访问到你的应用。这样的技巧是很有用的,比如用户将你的网站放到收藏夹,而当你的网站改版或者改变了某些文件时,则用户依然可以访问到你的网站。还有,如果你的web应用出于安全目的,要隐藏一些程序的url,则可以通过上面的方法实现,因为用户在浏览器中看到的地址,依然是旧的url地址,以上面的例子来说,就是用户在浏览器中地址栏看到的,是homedefault.aspx,而不会是新的地址default.aspx。

  以上只是asp.net 2.0中新增的许多功能的其中两个,asp,net 2.0中还有更多的新功能和奥秘,等待大家去挖掘。

 

ASP.NET2.0的缓存控件和地址映射(原作)

自己最新的一篇作品 http://www.yesky.com/SoftChannel/72342380468043776/20040725/1834724.shtml...
  • mdot
  • mdot
  • 2004年07月26日 09:58
  • 1123

ASP.NET2.0的缓存控件和地址映射

今年,微软终于发布了.net framework 2.0 beta 以及一系列的开发工具的beta 测试版,其中包括visual web developer 2005系列(可以在http://www....
  • ark1111
  • ark1111
  • 2004年10月19日 14:31
  • 834

(转)Cache的地址映射与转换

Cache的地址映射与转换    地址映象是指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。下面介绍三种地址映象的方式。    1.全相联方式   地址映象规则:主...
  • hivivi
  • hivivi
  • 2011年08月18日 13:34
  • 2065

linux内存基础知识

要理解内存在程序中是如何分配的,首先需要理解如何将内存从操作系统分配给程序。计算机上的每一个进程都认为自己可以访问所有的物理内存。显然,由于同时在运行多个程序,所以每个进程不可能拥有全部的内存。实际上...
  • chl1099949276
  • chl1099949276
  • 2014年03月08日 18:23
  • 479

Linux 虚拟地址与物理地址的映射关系分析

3.1用户空间的映射: 1. 用户空间的虚拟地址vaddr通过MMU(pgd,pmd,pte)找到对应的页表项x(即为物理地址) 2. 页表项x的高20位是物理也好,物理页号index = x >>...
  • ordeder
  • ordeder
  • 2014年11月30日 23:20
  • 9815

asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

asp.net2.0学习历程 菜鸟到中级程序员的飞跃--30本好书点评作者:清清月儿主页:http://blog.csdn.net/21aspnet/          时间:2007.5.16学历历...
  • 21aspnet
  • 21aspnet
  • 2007年05月16日 23:34
  • 57013

ASP.NET2.0缓存

ASP.NET2.0_缓存 1.页面缓存:     页面输出缓存用于缓存页面呈现的所有内容(当在浏览器中选择查看源码能看的所有内容)到内存中.注:页面输出缓存作用于整个页面.1.1部分页面缓存通过只缓...
  • chengfong
  • chengfong
  • 2009年03月01日 00:37
  • 391

Cache和主存地址映射关系

Cache的地址映像方式中,发生块冲突次数最小的是( ) 。 A.全相联映像   B.组相联映像   C.直接映像    D.无法确定的 全相联映像块冲突最小...
  • MHSMIE
  • MHSMIE
  • 2016年12月03日 19:34
  • 4455

Cache与主存之间的映射方式

原文出处:http://gsqls.blog.163.com/blog/static/45971218201341310221675/ 一、高速缓冲存储器的功能、结构与工作原理 ...
  • whuzm08
  • whuzm08
  • 2016年07月01日 13:44
  • 4772

如何在ASP.NET2.0下面使用基于数据库(SqlServer2000)的Cache

在.NET1.1下面Cache只能基于文件系统、对象等做Cache的依赖项,但是在.NET 2.0提供了一个新的依赖项SqlCacheDependency,这个项使我们Cache依赖数据库的变化来改变...
  • cuike519
  • cuike519
  • 2006年06月20日 13:00
  • 2828
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET2.0的缓存控件和地址映射
举报原因:
原因补充:

(最多只允许输入30个字)