Asp.net admite tres tipos de caché.
Quiero escribir una descripción técnica rápida, pero puede que sea demasiado. El propósito de la descripción técnica es describir los puntos técnicos de la manera más rápida y sencilla, que también espero sea la forma más eficiente de difundir conocimientos.
1. Caché de página/control
2. Caché a nivel de aplicación
3. Caché del cliente del navegador
Desde la perspectiva de la implementación, la caché de página/control y la caché a nivel de aplicación se almacenan en la memoria del servidor a medida que la memoria se agota, estos contenidos pueden eliminarse con anticipación antes de que dejen de ser válidos. (Las características del caché determinan que estos contenidos se puedan eliminar con confianza). El caché del cliente del navegador se almacena en el caché del navegador del cliente. Por ejemplo, la carpeta temporal de IE funciona como un caché. Cada vez que un usuario solicita una página, el navegador primero buscará en el caché para ver si hay contenido en el caché que cumpla con los requisitos y no haya caducado. Si es así, lo leerá directamente desde el caché y omitirá la transmisión de red.
A continuación se demuestra el método de escritura específico en Asp.net:
1. La caché de página/control se puede declarar en el archivo aspx, ascx o se puede declarar en el código subyacente.
<%@ OutputCache Duration="#ofsegundos"
Ubicación="Cualquiera | Cliente | Descendente | Servidor | Ninguno |
ServerAndClient "
Shared="True | False"
VaryByControl="nombredecontrol"
VaryByCustom="navegador | cadena personalizada"
VaryByHeader="encabezados"
VaryByParam ="parametername"
CacheProfile="nombre del perfil de caché | ''"
NoStore="true | false"
SqlDependency="par de nombre de base de datos/tabla | CommandNotification"
%>
Los parámetros principales son:
Duración: tiempo efectivo de caché, unidad de segundos
Compartido: It solo es válido para controles Cuando un control se puede aplicar a varias páginas al mismo tiempo, ¿pueden varias páginas compartir este caché sin que cada página mantenga su propio caché para este control?
VaryByControl: el caché cambia con el ID del control.
VaryByCustom: el caché cambia con una variable definida por el usuario. La variable se especifica aquí y debe implementarse en Global.ascx:
cadena de anulación pública GetVaryByCustomString (
contexto HttpContext,
cadena personalizada
)
this
.declaración El parámetro personalizado es la variable declarada en OutPutcache. Los diferentes contenidos de la caché se representan devolviendo diferentes valores de cadena para diferentes parámetros personalizados en esta función.
VaryByHeader, VaryByParam y CacheProfile también configuran diferentes versiones de caché.
NoStore significa que el contenido de la caché no puede escribirse en dispositivos de almacenamiento que no sean la memoria. Este es un requisito para el contenido con una seguridad relativamente alta.
SqlDependency está relacionado con la base de datos.
2. El caché a nivel de aplicación
solo se puede obtener en el código subyacente y su característica es que puede implementar cualquier lógica de caché que necesite.
Se puede obtener a través de Page.Cache, el nombre de la clase es System.Web.Caching.Cache
3. El caché del cliente del navegador
solo se puede obtener mediante código subyacente y se puede especificar a través de Response.Cache, que es un objeto HttpCachePolicy.
Además: puede especificar un TimeSpan como tiempo de caché, sin convertirlo a segundos cada vez.
TimeSpan público (tices largos);
TimeSpan público (int horas, int minutos, int segundos);
timeSpan público (int días, int horas, int minutos, int segundos)
;
, int milisegundos);
si desea que el caché retenga una hora, un minuto y un segundo, puede usar directamente
new TimeSpan(1,1,1)
en lugar de calcular primero
1 hora, 1 minuto y 1 segundo = 3600). +60+1=3661 segundos y luego transfiera Ingrese 3661 como período de validez.
http://www.cnblogs.com/ThomasNet/archive/2006/11/26/573104.html