您目前已離線,請等候您的網際網路重新連線

如何使用 Visual Basic.NET 在 ASP.NET 快取

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

811431
結論
本文將逐步告訴您,控制 ASP.NET 快取網頁和資料物件的方法。快取,可避免當您進行後續的要求時重新建立的資訊。快取是一種重要的技巧來建置更高的執行效能和可調適的伺服器應用程式。在頁面的第一個要求,您可以儲存資料物件]、 [頁,] 或 [在記憶體中的頁的部分。在 Web 伺服器、 Proxy] 伺服器上或在瀏覽器上,您可以儲存這些項目。

其他相關資訊
ASP.NET 提供方便的方法,以控制快取。您可以使用 @ OutputCache 指示詞來控制在 ASP.NET 快取網頁輸出。使用 HttpCachePolicy 類別來儲存為資料集,伺服器記憶體等的任意物件。您可以將快取儲存在應用程式 (例如用戶端瀏覽器、 Proxy 伺服器與 Microsoft 網際網路資訊服務 (IIS)。利用快取控制 HTTP 標頭中,您可以控制快取。

取得更多資訊有關 ASP.NET 輸出快取按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
308516如何控制網頁輸出快取在 ASP.NET 中藉由使用 Visual Basic.NET

快取 ASP.NET Web 網頁

您可以使用 Visual 基本.NET 或 Visual C#.NET 快取使用 @ OutputCache] 指示詞或以程式設計的方式透過程式碼。@ OutputCache 指示詞包含 位置 屬性。這個屬性會決定快取項目的位置。您可以指定下列位置其中之一:
  • 任何-這會輸出快取儲存在用戶端的瀏覽器,Proxy 伺服器 (或任何其他伺服器) 上參與在該要求或處理要求的伺服器上。依預設值,任何 已選取。
  • 用戶端-這會在用戶端瀏覽器上的儲存輸出快取。
  • Downstream-這會輸出快取儲存在要求中加入任何具快取裝置 (而非原始伺服器)。
  • 伺服器-這會在 Web 伺服器上儲存輸出快取。
  • -此關閉輸出快取。

以下是 @ OutputCache 指示詞和對等程式化的程式碼的程式碼範例。
  • 若要儲存輸出快取,以指定的持續期間

    宣告式的方法:
    <%@ OutputCache Duration="60" VaryByParam="None" %>

    程式化的方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Public)
  • 若要儲存輸出快取要求發源的瀏覽器用戶端上

    宣告式的方法:
    <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %>

    程式化的方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Private)
  • 若要儲存在任何 HTTP 1.1 具快取裝置包括 Proxy 伺服器及用戶端,所做的要求上輸出快取

    宣告式的方法:
    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %>

    程式化的方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Public)Response.Cache.SetNoServerCaching()
  • 若要儲存在 Web 伺服器上的輸出快取

    宣告式的方法:
    <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %>

    程式化的方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Server)
  • 若要快取,到達不同的城市與每個 HTTP 要求的輸出

    宣告式的方法:
    <%@ OutputCache duration="60" varybyparam="City" %>

    程式化的方法:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))Response.Cache.SetCacheability(HttpCacheability.Public)Response.Cache.VaryByParams("City") = true
    VaryByCustom 屬性、 VaryByHeader] 屬性和 VaryByParam 屬性 @ OutputCache 指示詞中的,HttpCachePolicy 類別會提供 VaryByHeaders 屬性和 VaryByParams] 屬性和 SetVaryByCustom 方法。

關閉用戶端和 Proxy 快取

若要關閉在用戶端位置和 Proxy 位置的 ASP.NET Web 網頁的輸出快取區,位置 屬性值設為 [無,然後將 VaryByParam 值設為 [@ OutputCache 指示詞中]。使用下列程式碼範例關閉用戶端和 Proxy 快取。
  • 宣告式的方法:
    <%@ OutputCache Location="None" VaryByParam="None" %>
  • 程式化的方法:
    Response.Cache.SetCacheability(HttpCacheability.NoCache)

快取在伺服器記憶體中的任意物件

ASP.NET 包括功能強大、 容易使用的快取機制,可以讓您儲存需要大量伺服器資源來建立在記憶體中的物件。快取 類別會實作這個方法。執行個體是私人每一個應用程式,而且存留期 (Lifetime) 繫結至對應的應用程式。若要使用 快取 類別,快取 ASP.Net 中任意的物件,請依照下列步驟執行:
  1. 藉由使用 Visual 基本.NET 中建立新的 ASP.NET Web 應用程式。
  2. 根據預設值,WebForm1.aspx,即建立。
  3. 在的 WebForm1.aspx 的 [HTML] 檢視以下列的範例程式碼取代現有的程式碼:
    <%@ Import Namespace="System.Data.SqlClient" %><%@ Import Namespace="System.Data" %><HTML>	<script language="vb" runat="server">		Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)			Dim Source As DataView		'Retrieve the DataView object from the Cache class. If it does not exist, add the DataView object to the Cache class.		Source = CType(Cache("MyDataSet"), DataView)		If Source Is Nothing Then			Dim myConnection As SqlConnection = New SqlConnection("Server=ServerName; database=Pubs; user id=UID; password=PWD;")			Dim myCommand As SqlDataAdapter = New SqlDataAdapter("select * from Authors", myConnection)			Dim ds As DataSet = New DataSet()			myCommand.Fill(ds, "Authors")			Source = New DataView(ds.Tables("Authors"))			Cache("MyDataSet") = Source			CacheMsg.Text = "Dataset created explicitly"					Else						CacheMsg.Text = "Dataset retrieved from cache"		End If		' Bind the DataView object to DataGrid. 		MyDataGrid.DataSource = Source		MyDataGrid.DataBind()		End Sub	</script>	<body>		<form method="GET" runat="server" ID="Form1">	      <h3><font face="Verdana">Caching Data</font></h3>			<ASP:DataGrid id="MyDataGrid" runat="server"			Width="700"			BackColor="#ccccff"			BorderColor="black"			ShowFooter="false"			CellPadding=3			CellSpacing="0"			Font-Name="Verdana"			Font-Size="8pt"			HeaderStyle-BackColor="#aaaad" />			<p>			<i><asp:label id="CacheMsg" runat="server"/></i>	    </form>		</P>	</body></HTML>
    注意 取代值的 ServerNameUIDPWDSqlConnection 物件的範例程式碼中使用 SQL Server 名稱、 使用者 ID 和密碼。
  4. 在 [偵錯] 功能表上按一下 [開始] 執行應用程式]。

    附註當您重新啟動應用程式時,庫存 物件是重新建立。
参考
如需詳細資訊按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中發行項]:
234067如何防止在 Internet Explorer 中快取
247404如何修改快取控制項的 HTTP 標頭,當您使用 IIS
311006如何防止 Web 快取在 Windows 2000 中
247389IIS: 如何停用特定的 MIME 類型的快取
313561如何在 IIS 中設定內容到期的 HTTP 標頭


如需詳細資訊請造訪下列 Microsoft 網站]:

警告:本文已自動翻譯

內容

文章識別碼:811431 - 最後檢閱時間:05/31/2007 02:46:37 - 修訂: 3.6

  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbmt kbhowtomaster kbdatabinding kbcaching kbwebforms kbinfo KB811431 KbMtzh
意見反應