Så här gör du för att: Ange en location-based cache-policy för en applikation

Platsbaserade cacheprinciper gör det möjligt för ett program att explicit definiera cachelagringsbeteende baserat på platsen för den begärda resursen. Det här avsnittet visar hur du ställer in cacheprincipen programmatiskt. Information om hur du anger principen för ett program med hjälp av konfigurationsfilerna <requestCaching> finns i Element (Nätverksinställningar).

Så här anger du en platsbaserad cacheprincip för ett program

  1. Skapa ett RequestCachePolicy eller HttpRequestCachePolicy objekt.

  2. Ange principobjektet som standard för programdomänen.

Ange en princip som tar begärda resurser från ett cacheminne

  • Skapa en princip som tar begärda resurser från en cache om den är tillgänglig, och annars skickar begäranden till servern genom att ange cachenivån till CacheIfAvailable. En begäran kan uppfyllas av alla cacheminnen mellan klienten och servern, inklusive fjärranslutna cacheminnen.

    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
    

Ange en princip som förhindrar att cacheminnet tillhandahåller resurser

  • Skapa en princip som förhindrar att cacheminnet tillhandahåller begärda resurser genom att ange cachenivån till NoCacheNoStore. Den här principnivån tar bort resursen från den lokala cachen om den finns och anger för fjärranslutna cacheminnen att de också ska ta bort resursen.

    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
    

Ange en princip som endast returnerar begärda resurser om de finns i den lokala cachen

  • Skapa en princip som endast returnerar begärda resurser om de finns i den lokala cachen genom att ange cachenivån till CacheOnly. Om den begärda resursen inte finns i cacheminnet genereras ett WebException undantag.

    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
    

Ange en princip som förhindrar att den lokala cachen tillhandahåller resurser

  • Skapa en princip som förhindrar att den lokala cachen tillhandahåller begärda resurser genom att ange cachenivån till Refresh. Om den begärda resursen finns i en mellanliggande cache och har omkalibrerats kan den mellanliggande cachen ange den begärda resursen.

    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
    

Så här anger du en princip som förhindrar att cacheminnet tillhandahåller begärda resurser

  • Skapa en princip som förhindrar att cacheminnet tillhandahåller begärda resurser genom att ange cachenivån till Reload. Resursen som returneras av servern kan lagras i cacheminnet.

    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
    

Ange en princip som gör att alla cacheminnen kan tillhandahålla begärda resurser om resursen på servern inte är nyare än den cachelagrade kopian

  • Skapa en princip som gör att alla cacheminnen kan tillhandahålla begärda resurser om resursen på servern inte är nyare än den cachelagrade kopian genom att ange cachenivån till 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
    

Se även