明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

ASP.NET2.0的緩存控件與地址映射

[摘要]在asp.net 2.0中,引入了很多新的控件和功能,比起之前的asp.net 1.0 和asp.net 1.1,有了革命性的改變。本文將簡單介紹其中的兩個新的功能:緩存功能和地址映射功能。本文以.net framework 2.0 和visual web developer 2005 beta ...

在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 版本中,可以引入緩存功能,將大大增強應(yīng)用程序的性能。但唯一不足的是,一旦使用緩存功能的話,一般都是全部使用緩存,但在有的應(yīng)用中,有的時候可能需要只對頁面的某些控件內(nèi)容使用緩存,而其他部分將不使用緩存功能,不使用緩存功能的控件將實時地獲得服務(wù)器上最新的內(nèi)容。比如,一個web應(yīng)用中,一些固定的網(wǎng)頁信息,如頁面底部的版權(quán)信息,或者是一些不是經(jīng)常更新的信息,可以使用緩存功能,但一些比較實時的信息,如股票價格走勢圖等,就不能使用緩存功能了。這種情況下,以往的asp.net 比較難實現(xiàn),但在asp.net 2.0中,可以通過簡單使用substitution緩存控件就可以實現(xiàn)了。下面講解一下,如果在一個使用了緩存功能的頁面中,如何通過substitution控件使某些部分控件不應(yīng)用緩存。

  下面舉個簡單的例子。在這個例子中,將顯示兩個時間,其中一個時間顯示是應(yīng)用了緩存功能的,設(shè)定的緩存時間是30秒,另一個顯示的時間則并沒有應(yīng)用緩存功能,會隨著頁面的每次刷新獲得最新的時間,代碼如下:

<%@ 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>
。糷ead id="Head1" runat="server">
 <title>substitution例子</title>
</head>
<body>
。糵orm id="Form1" runat="server">
 。紁>下面的時間顯示沒有使用緩存功能</p>
 。糰sp: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>

  下圖是運行的結(jié)果

 

  運行程序后,每次刷新頁面,則會看到,沒有使用緩存功能的時間控件,每次都會獲得最新的時間,而使用了緩存功能的時間控件,每隔30秒才顯示最新的時間,其余均保持上一次顯示的時間不變。

  請注意,在該頁面中,頁面開頭是使用了<%@ outputcache duration="30" varybyparam="none" %>,對頁面使用緩存功能的,而只是簡單的拖拉一個substitution控件,則實現(xiàn)了部分不緩存的功能。在

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

  中,methodname調(diào)用的是一個方法,該方法中,可以寫入哪些內(nèi)容是不使用緩存功能的,本方法中返回的是字符串。注意,substitution控件中的methodname中調(diào)用的方法必須是靜態(tài)方法,而且傳入的參數(shù)必須是HttpContext.


[page_break]二 ASP.NET 2.0的URL映射功能

  在asp.net 2.0中,在web.config文件中,新增加了url映射功能。什么是url映射功能呢?舉個例子,比如,原來你的首頁的程序是homedefault.aspx,但是,你改邊了其命名,改為default.aspx,那么,為了讓用戶能繼續(xù)用default.aspx能訪問你的web應(yīng)用,就可以使用url映射功能。首先,在web.config文件中,url映射的語法如下:

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

  其中,當(dāng)enabled設(shè)置為true時,則允許進行url地址映射,false的話則不允許參數(shù)url1表示的是舊的url地址,url2表示新的要映射的目的url地址,以我們的例子為例,則是

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

  則其效果為,當(dāng)用戶使用homedefault.aspx訪問你的web應(yīng)用時,系統(tǒng)會自動將地址映射到default.aspx,從而可以是用戶正確訪問到你的應(yīng)用。這樣的技巧是很有用的,比如用戶將你的網(wǎng)站放到收藏夾,而當(dāng)你的網(wǎng)站改版或者改變了某些文件時,則用戶依然可以訪問到你的網(wǎng)站。還有,如果你的web應(yīng)用出于安全目的,要隱藏一些程序的url,則可以通過上面的方法實現(xiàn),因為用戶在瀏覽器中看到的地址,依然是舊的url地址,以上面的例子來說,就是用戶在瀏覽器中地址欄看到的,是homedefault.aspx,而不會是新的地址default.aspx。