Como: Definir uma política de cache Location-Based para uma aplicação

As políticas de cache baseadas na localização permitem que uma aplicação defina explicitamente o comportamento de cache com base na localização do recurso solicitado. Este tópico demonstra como definir a política de cache de forma programática. Para informações sobre como definir a política para uma aplicação usando os ficheiros de configuração, consulte <requestCaching> Elemento (Definições de Rede).

Para definir uma política de cache baseada em localização para uma aplicação

  1. Crie um objeto RequestCachePolicy ou HttpRequestCachePolicy.

  2. Defina o objeto de política como padrão para o domínio da aplicação.

Para definir uma política que retire os recursos solicitados de uma cache

  • Crie uma política que retire os recursos solicitados de uma cache se disponível e, caso contrário, envie pedidos para o servidor, definindo o nível da cache para CacheIfAvailable. Um pedido pode ser satisfeito por qualquer cache entre o cliente e o servidor, incluindo caches remotas.

    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
    

Para definir uma política que impeça qualquer cache de fornecer recursos

  • Crie uma política que impeça qualquer cache de fornecer recursos solicitados, definindo o nível da cache para NoCacheNoStore. Este nível de política remove o recurso da cache local se estiver presente e indica às caches remotas que também devem remover o recurso.

    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
    

Para definir uma política que devolva os recursos solicitados apenas se estiverem na cache local

  • Crie uma política que devolve os recursos solicitados apenas se estiverem na cache local, definindo o nível da cache para CacheOnly. Se o recurso solicitado não estiver na cache, é lançada uma WebException exceção.

    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
    

Para definir uma política que impeça que a cache local forneça recursos

  • Crie uma política que impeça a cache local de fornecer recursos solicitados, definindo o nível da cache para Refresh. Se o recurso solicitado estiver numa cache intermédia e for revalidado com sucesso, a cache intermédia pode fornecer o recurso solicitado.

    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
    

Para definir uma política que impeça qualquer cache de fornecer recursos solicitados

  • Crie uma política que impeça qualquer cache de fornecer recursos solicitados, definindo o nível da cache para Reload. O recurso devolvido pelo servidor pode ser armazenado na cache.

    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
    

Definir uma política que permita a qualquer cache fornecer recursos solicitados se o recurso no servidor não for mais recente do que a cópia em cache

  • Crie uma política que permita a qualquer cache fornecer recursos solicitados se o recurso no servidor não for mais recente do que a cópia em cache, definindo o nível da cache para 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
    

Consulte também