Partilhar via


Fazendo cache de saída de versões múltiplas de controles de usuário

Da mesma maneira que é possível variar as versões de uma página que estão armazenadas em cache de saída, você pode dar saída para cache de regiões de uma página com controles de usuário.Você pode fazer isso variando a saída do controle de usuário pelo nome do controle e string de consulta GET ou pelos valores de parâmetros Post de formulário, ou variando a saída pelos valores de parâmetros somente.Você também pode fazer cache de versões múltiplas de um controle de usuário em uma página, declarando-o mais de uma vez no arquivo .aspx que o contém.Você pode usar qualquer uma dessas técnicas, se você especificar o cache de saída para o controle de usuário com a diretiva @ OutputCache no arquivo .ascx ou com o atributo PartialCachingAttribute quando você desenvolve um controle de usuário em uma classe code-behind.

A diretiva @ OutputCache para controles de usuário suporta quatro atributos, VaryByParam, VaryByCustom, VaryByControl e Shared.A classe PartialCachingAttribute inclui quatro propriedades, VaryByParams, VaryByControls, VaryByCustom, e Shared, que permitem que você use as mesmas técnicas adicionando um atributo a um controle de usuário em uma classe code-behind.

Quando uma página ASP.NET que contém um controle de usuário com configurações de cache de saída é solicitada, primeiro uma instância de saída do controle é salva na memória.Por padrão, cada página que contém o mesmo controle de usuário adicionará outra instância de saída do controle à memória quando ela for solicitada.

Por exemplo, se você criou um controle de usuário chamado Sample.ascx com configurações de cache de saída e adicionou Sample.ascx a vinte e cinco páginas ASP.NET em seu aplicativo, deveria haver pelo menos essas muitas versões de Sample.ascx armazenadas no cache de saída.Além disso, se você usar os atributos VaryByControl, VaryByCustom, ou VaryByParam para modificar o comportamento de cache do controle de usuário, poderiam haver várias versões a mais de saída do controle de usuário no cache.Por exemplo, suponha que você inclua um controle de servidor Web TextBox no seu controle de usuário e defina sua propriedade ID como MyTextBox.Se você definir o atributo VaryByControl para MyTextBox, haverá uma versão de saída do controle de usuário armazenada no cache para cada valor que o controle MyTextBox receber.

Se o mesmo controle de usuário é usado em várias páginas dentro do mesmo aplicativo, você pode salvar memória definindo o atributo Shared da diretiva @ OutputCache do controle de usuário como true, ou definindo a propriedade Shared no atributo PartialCachingAttribute do controle como true.Isso significa que cada página irá acessar a mesma instância de saída do controle de usuário.Usar a propriedade Shared nos controles de usuário comumente usados e frequentemente em cache pode salvar uma quantidade significativa de memória.

Há uma diferença importante entre adicionar saída de controles de usuário ao cache de saída e fazer o mesmo para saída de páginas.Enquanto o cache de saída para ambos suporta o uso de strings de consulta GET e parâmetros POST de formulário para criar e armazenar várias versões de saída, controles de usuário não oferecem suporte de cache com base em cabeçalhos HTTP.

Há quatro técnicas que você pode usar para variar controles de usuário que tem saída em cache:

  • Você pode usar o atributo VaryByParam ou a propriedade VaryByParams da classe PartialCachingAttribute, a qual fornece a mesma funcionalidade que aquela fornecida para o cache de saída de página.Você pode definir qualquer um como uma string qualquer, mas você precisa fazê-lo igual à string de consulta GET ou a parâmetros POST de formulário que estão associados ao controle de usuário que você criou.

  • Você pode usar o atributo VaryByControl ou a propriedade VaryByControls da classe PartialCachingAttribute para variar o controle de usuário armazenado em cache pela saída de acordo com a propriedade ID de um controle de servidor ASP.NET contido pelo controle de usuário.

  • Você pode usar o atributo VaryByCustom ou a propriedade VaryByCustom da classe PartialCachingAttribute para definir código para uma sequência de caracteres personalizada à qual você deseja variar a saída em cache do controle de usuário.Isso funciona da mesma forma que a técnica do atributo VaryByControl para variar o cache de saída de página.Para obter mais informações, consulte Como: Cache Versions of a página Using Custom Strings.

  • Você pode incluir várias instâncias de um controle de usuário em um página ASP.NET.A menos que você defina o atributo Shared da diretiva @ OutputCache para true, a saída para cada instância do controle será armazenada em cache.

Para obter mais informações sobre cada um desses tópicos, consulte Como: Armazenar em cache várias versões de um controle de usuário com base em parâmetros e Como: Armazenar em cache várias versões de um controle de usuário usando atributos declarativos.

Consulte também

Tarefas

Como: Armazenar em cache várias versões de um controle de usuário com base em parâmetros

Como: Armazenar em cache várias versões de um controle de usuário usando atributos declarativos

Conceitos

Visão geral do cache no ASP.NET

Cache de páginas ASP.NET

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

Outros recursos

O que há de novo no cache do ASP.NET