Compartilhar via


Como definir uma política de cache Location-Based para um aplicativo

As políticas de cache baseadas em localização permitem que um aplicativo defina explicitamente o comportamento de cache com base no local do recurso solicitado. Este tópico demonstra a configuração da política de cache programaticamente. Para obter informações sobre como definir a política para um aplicativo usando os arquivos de configuração, consulte <requestCaching> Elemento (Configurações de Rede).

Para definir uma política de cache baseada em local para um aplicativo

  1. Criar um RequestCachePolicy ou HttpRequestCachePolicy objeto.

  2. Defina o objeto de política como o padrão para o domínio do aplicativo.

Para definir uma política que usa recursos solicitados de um cache

  • Crie uma política que obtém recursos solicitados de um cache, se disponível e, caso contrário, envia solicitações para o servidor definindo o nível de cache como CacheIfAvailable. Uma solicitação pode ser atendida por qualquer cache entre o cliente e o servidor, incluindo caches remotos.

    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 impede que qualquer cache forneça recursos

  • Crie uma política que impeça qualquer cache de fornecer recursos solicitados definindo o nível de cache como NoCacheNoStore. Esse nível de política remove o recurso do cache local se ele estiver presente e indica aos caches remotos que eles 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 retorna recursos solicitados somente se eles estiverem no cache local

  • Crie uma política que retorna os recursos solicitados somente se eles estiverem no cache local definindo o nível de cache como CacheOnly. Se o recurso solicitado não estiver no cache, uma WebException exceção será gerada.

    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 o cache local de fornecer recursos

  • Crie uma política que impeça o cache local de fornecer recursos solicitados definindo o nível de cache como Refresh. Se o recurso solicitado estiver em um cache intermediário e for revalidado com êxito, o cache intermediário poderá 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 impede que qualquer cache forneça recursos solicitados

  • Crie uma política que impeça qualquer cache de fornecer recursos solicitados definindo o nível de cache como Reload. O recurso retornado pelo servidor pode ser armazenado no 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
    

Para definir uma política que permita que qualquer cache forneça recursos solicitados se o recurso no servidor não for mais recente do que a cópia armazenada em cache

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