UNIVERSIDAD DON BOSCO ASP.NET HTTP Y CACHE ALMACENAMIENTO CACHE ASP.NET proporciona métodos útiles para controlar el almacenamiento en caché. Puede utilizar la directiva @ OutputCache para controlar el resultado de la página el almacenamiento en caché de ASP.NET. Utilice la clase HttpCachePolicy para almacenar objetos arbitrarios, tales como conjuntos de datos, a la memoria del servidor. Puede almacenar la memoria caché en aplicaciones como el explorador del cliente, el servidor proxy y los servicios de Microsoft Internet Information Services (IIS). Mediante el uso de encabezado HTTP Cache-Control, puede controlar el almacenamiento en caché. Páginas de caché de ASP.NET Puede almacenar en caché con la directiva @ OutputCache, o mediante programación a través de código mediante Visual Basic .NET o Visual C#. NET. La directiva @ OutputCache contiene un atributo de ubicación. Este atributo determina la ubicación para el elemento en caché. Puede especificar una de las siguientes ubicaciones: cualquier - se almacena la caché de resultados en el explorador del cliente, en el servidor proxy (o cualquier otro servidor) que participa en la solicitud o en el servidor donde se procesó la solicitud. De forma predeterminada, cualquier está activada. cliente - se almacena la caché de resultados en el explorador del cliente. descendente - se almacena la caché de resultados en cualquier dispositivo compatible con caché (distintos del servidor de origen) que participan en la solicitud. servidor - se almacena la caché de resultados en el servidor Web. Ninguno - este desactiva la caché de resultados. Los siguientes son ejemplos de código para la directiva @ OutputCache y el código equivalente mediante programación. Esto quiere decir que puedo manejarlo con declaraciones o en el PageLoad con código. Almacenar caché durante un tiempo específico. Enfoque declarativo: <%@ OutputCache Duration="60" VaryByParam="None" %> Enfoque de programación: Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Public) Almacenar caché en el cliente donde se originó solicitud. Enfoque declarativo: <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %> Enfoque de programación: Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Private) Almacenar caché en cualquier dispositivo compatible con HTTP Enfoque declarativo: <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %> Enfoque de programación: Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetNoServerCaching() Almacenar caché de resultados en el servidor Web Enfoque declarativo: <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %> Enfoque de programación: Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Server) Almacenar en caché el resultado para cada solicitud HTTP que llega con una ciudad diferente Enfoque declarativo: <%@ OutputCache duration="60" varybyparam="City" %> Enfoque de programación: Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.VaryByParams("City") = true Para el atributo VaryByCustom , el atributo VaryByHeader y el atributo VaryByParam en la directiva @ OutputCache , la clase HttpCachePolicy suministra la propiedad VaryByHeaders y la propiedad VaryByParams y el método SetVaryByCustom . Ejercicios: Prueba de cache Creo un Sitio Web nuevo y coloque el nombre de demo_cache. Cree un webform con el nombre de prueba. Pruebe colocando la frase declarativa “<%@ OutputCache Duration="60" VaryByParam="None" %>” a partir de la segunda línea del archivo de html, y además cree un control html label1.text en la página. En el archivo de código en el pageload coloque la siguiente instrucción: Label1.Text = "hora: " & DateTime.Now.TimeOfDay.ToString() y luego pruebe el archivo. Refresque la página constantemente y note como realiza la actualización de los datos. Pruebe las demás formas de almacenamiento. Caché objetos arbitrarios en memoria del servidor ASP.NET incluye un mecanismo de almacenamiento en caché eficaz y fácil de usar que puede utilizar para almacenar objetos que requieren gran cantidad de recursos de servidor para crear en la memoria. La clase Cache implementa este método. Las instancias son privadas para cada aplicación y la duración está vinculada a la aplicación correspondiente. Para almacenar en caché los objetos arbitrarios en ASP.NET mediante la clase de caché, analice los scritp de ejemplo, proporcionados por su docente.