作法:為應用程式設定以位置為基礎的快取原則
以位置為基礎的快取原則,可讓應用程式明確地定義根據所要求資源位置的快取行為。 本主題將示範如何以程式設計方式設定快取原則。 如需使用組態檔為應用程式設定原則的詳細資訊,請參閱 <requestCaching> 元素 (網路設定)。
為應用程式設定以位置為基礎的快取原則
建立 RequestCachePolicy 或 HttpRequestCachePolicy 物件。
設定原則物件作為應用程式定義域的預設值。
設定從快取中取得所要求資源的原則
藉由將快取層級設定為 CacheIfAvailable 來建立下列原則:從快取中取得可用的所要求資源,否則將要求傳送到伺服器。 用戶端與伺服器之間的任何快取都可以滿足要求,包括遠端快取。
public static void UseCacheIfAvailable() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.CacheIfAvailable); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub UseCacheIfAvailable() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.CacheIfAvailable) HttpWebRequest.DefaultCachePolicy = policy End Sub
設定防止任何快取提供資源的原則
藉由將快取層級設定為 NoCacheNoStore 來建立下列原則:防止任何快取提供所要求的資源。 此原則層級會從本機快取中移除存在的資源,並且向遠端快取指出它們也應該移除資源。
public static void DoNotUseCache() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.NoCacheNoStore); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub DoNotUseCache() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.NoCacheNoStore) HttpWebRequest.DefaultCachePolicy = policy End Sub
設定唯有所要求的資源位於本機快取中時,才會傳回這些資源的原則
藉由將快取層級設定為 CacheOnly 來建立下列原則:唯有所要求的資源位於本機快取中時,才會傳回這些資源。 如果所要求的資源不在快取中,則會擲回 WebException 例外狀況。
public static void OnlyUseCache() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.CacheOnly); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub OnlyUseCache() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.CacheOnly) HttpWebRequest.DefaultCachePolicy = policy End Sub
設定防止本機快取提供資源的原則
藉由將快取層級設定為 Refresh 來建立下列原則:防止本機快取提供所要求的資源。 如果所要求的資源位於中繼快取中,而且已成功重新驗證,則中繼快取可以提供所要求的資源。
public static void DoNotUseLocalCache() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.Refresh); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub DoNotUseLocalCache() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.Refresh) HttpWebRequest.DefaultCachePolicy = policy End Sub
設定防止任何快取提供所要求資源的原則
藉由將快取層級設定為 Reload 來建立下列原則:防止任何快取提供所要求的資源。 伺服器傳回的資源可以儲存在快取中。
public static void SendToServer() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.Reload); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub SendToServer() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.Reload) HttpWebRequest.DefaultCachePolicy = policy End Sub
設定伺服器上的資源並未比快取複本更新時,可讓任何快取提供所要求資源的原則
藉由將快取層級設定為 Revalidate 來建立下列原則:伺服器上的資源並未比快取複本更新時,可讓任何快取提供所要求的資源。
public static void CheckServer() { HttpRequestCachePolicy policy = new HttpRequestCachePolicy (HttpRequestCacheLevel.Revalidate); HttpWebRequest.DefaultCachePolicy = policy; }
Public Shared Sub CheckServer() Dim policy As New HttpRequestCachePolicy _ (HttpRequestCacheLevel.Revalidate) HttpWebRequest.DefaultCachePolicy = policy End Sub