Asp.net oferece suporte a três tipos de cache.
Quero escrever uma visão geral técnica rápida, mas pode ser demais. O objetivo da visão geral técnica é descrever os pontos técnicos da maneira mais rápida e simples, que é também a forma mais eficiente de disseminar o conhecimento, espero.
1. Cache de página/controle
2. Cache em nível de aplicativo
3. Cache do cliente do navegador
Do ponto de vista da implementação, o cache de página/controle e o cache de nível de aplicativo são armazenados na memória do servidor. À medida que a memória fica restrita, esses conteúdos podem ser excluídos antecipadamente antes de se tornarem inválidos. (As características do cache determinam que esses conteúdos podem ser excluídos com segurança). O cache do navegador cliente é armazenado no cache do navegador cliente. Por exemplo, a pasta temporária do IE funciona como cache. Cada vez que um usuário solicita uma página, o navegador primeiro pesquisa o cache para ver se há conteúdo de cache que atenda aos requisitos e não tenha expirado. Em caso afirmativo, ele o lerá diretamente do cache e ignorará a transmissão da rede.
A seguir demonstra-se o método de escrita específico no Asp.net:
1. O cache de página/controle pode ser declarado no arquivo aspx, ascx ou pode ser declarado no código por trás.
<%@ OutputCache Duration="#ofseconds"
Location="Qualquer | Cliente | Downstream | Servidor | Nenhum |
ServerAndClient "
Shared="True | False"
VaryByControl="controlname"
VaryByCustom="navegador | customstring"
VaryByHeader="cabeçalhos"
VaryByParam ="parametername"
CacheProfile="cache profile name | ''"
NoStore="true | false"
SqlDependency="database/table name pair | CommandNotification"
%>
Os principais parâmetros são:
Duração: tempo efetivo do cache, unidade de segundos
Compartilhado: It é válido apenas para controles Quando um controle pode ser aplicado a várias páginas ao mesmo tempo, várias páginas podem compartilhar esse cache sem que cada página mantenha seu próprio cache para esse controle?
VaryByControl: O cache muda com o ID do controle
VaryByCustom: O cache muda com uma variável definida pelo usuário A variável é especificada aqui e deve ser implementada em Global.ascx:
public override string GetVaryByCustomString (
contexto HttpContext,
string custom
)
. instrução O parâmetro personalizado é a variável declarada em OutPutcache. Diferentes conteúdos de cache são representados retornando diferentes valores de string para diferentes parâmetros personalizados nesta função.
VaryByHeader, VaryByParam e CacheProfile também definem diferentes versões de cache.
NoStore significa que o conteúdo do cache não pode ser gravado em dispositivos de armazenamento que não sejam memória. Este é um requisito para conteúdo com segurança relativamente alta.
SqlDependency está relacionado ao banco de dados.
2. O cache no nível do aplicativo
só pode ser obtido no código por trás e sua característica é que ele pode implementar qualquer lógica de cache necessária.
Pode ser obtido através de Page.Cache, o nome da classe é System.Web.Caching.Cache
3. O cache do cliente do navegador
só pode ser obtido no codebehind e pode ser especificado por meio de Response.Cache, que é um objeto HttpCachePolicy.
Além disso: você pode especificar um TimeSpan como o tempo de cache, sem convertê-lo em segundos a cada vez.
public TimeSpan(tiques longos);
public TimeSpan(int horas, int minutos, int segundos);
public TimeSpan(int dias, int horas, int segundos, int segundos)
;
, int milissegundos);
Se quiser que o cache retenha uma hora, um minuto e um segundo, você pode usar diretamente
new TimeSpan(1,1,1)
em vez de calcular primeiro
1 hora, 1 minuto e 1 segundo = 3600. +60+1=3661 segundos e depois transferir Insira 3661 como o período de validade.
http://www.cnblogs.com/ThomasNet/archive/2006/11/26/573104.html