Compartilhar via


Como: Versões de cache de uma página usando cabeçalhos HTTP

ASP.NET permite a você armazenar em cache várias versões de uma página dependendo do valor de um cabeçalho HTTP que você especificar.Você pode especificar cache por um único cabeçalho, vários cabeçalhos, ou todos os cabeçalhos passados para o seu aplicativo quando a página é solicitada.

Para armazenar em cache versões de uma página declarativamente com base nos valores de cabeçalho HTTP

  1. No página ASP.NET, inclua uma diretiva @ OutputCache com oa atributos necessários Duration e VaryByParam ou VaryByControl.The Duration attribute must be set to an integer greater than zero.Se você desejar armazenar em cache apenas pelos valores de cabeçalho HTTP, você deve definir o atributo VaryByParam como "Nenhum".

  2. Na diretiva @ OutputCache, inclua o atributo VaryByHeader e defina seu valor para o nome do cabeçalho HTTP pelo qual você deseja variar o conteúdo do cache.

    O exemplo a seguir armazena a página em cache por 60 segundos e define versões de uma página para serem armazenadas em cache com base no valor passado com o cabeçalho HTTP Accept-Language:

    <%@ OutputCache Duration="60" VaryByParam="None" VaryByHeader="Accept-Language" %>
    
    Observação:

    Se você deseja variar o conteúdo em cache por vários cabeçalhos, inclua uma lista de nomes de cabeçalho separada por ponto-e-vírgula (;).If you want to vary the cached content by all header values, set the VaryByHeader attribute to an asterisk (*).

Para armazenar em cache versões de uma página programaticamente baseado em um valor de cabeçalho HTTP

  1. No método Page_Load da página, chame os métodos SetCacheability and SetExpires na propriedade Cache do objeto Response da página.

  2. Defina o valor para o cabeçalho HTTP na propriedade VaryByHeaders para true.

    O exemplo de código a seguir mostra como armazenar em cache várias versões de uma página para um minuto de solicitações com valores diferentes para o cabeçalho HTTP Accept-Language.

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetExpires(DateTime.Now.AddMinutes(1d));
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetValidUntilExpires(true);
        Response.Cache.VaryByHeaders["Accept-Language"] = true;
    }
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0))
        Response.Cache.SetCacheability(HttpCacheability.Public)
        Response.Cache.SetValidUntilExpires(True)
        Response.Cache.VaryByHeaders("Accept-Language") = true
    End Sub
    
    Observação:

    Se você desejar variar o conteúdo em cache por vários cabeçalhos, você precisa definir vários valores na propriedade VaryByHeaders.Se você deseja variar por todos os cabeçalhos, defina VaryByHeaders ["VaryByUnspecifiedParameters"] para true.

Consulte também

Tarefas

Como: conjunto the Cacheability of an ASP.NET página declarativamente

Como: conjunto por programação Cacheability da página

Como: Versões de cache de uma página usando o navegador pedir

Como: Versões de cache de uma página usando parâmetros

Como: Cache Versions of a página Using Custom Strings

Conceitos

Cache de páginas ASP.NET

Definindo a Cacheabilidade de uma Página

Armazenando Múltiplas Versões de uma Página