SergioTarrillo's RichWeblog

miércoles, agosto 10, 2005

Cache en ASP.NET ( a fondo): OutPutCache: VaryByParam, VaryByControl y VaryByHeader

Hola a todos, siendo las 05:45am, puedo decir que me voy a dormir tranquilo porque porfin (desde que estoy en asp.net) entendi todo lo que es cache, bueno hasta ASP.NET 1.1, en ASP.NET 2.0 hay nuevos conceptos. Estoy desde las 01:00am, haciendo el segundo ejercicio, pero sobre todo trataba de enterlo, estaba entiendo el VaryByControl, todo un dilema, y lo peor fue que no era problema del codigo sino de la memoria de la maquina, es decir cada vez que a la maquina le falta memoria, el .NET Framework libera la cache, osea que en vano hicistes todo tu código, eso me tuvo traumado un rato, hasta que comenze a cerrar un poco de aplicaciones y me di cuenta de eso, despues todo normal, comenze a enteder los conceptos. Aca se los dejo resumidito:

VaryByParam = "none", almacenas en la cache tal y como es, toda una pagina o todo un control.

VaryByParam = "valor", almacena por un tiempo determinado, dependiendo del parametro que envies, por ejemplo: pagina01.aspx?edad=18 y otra llamada asi: pagina01.aspx?edad=25. Entonces lo que hace almacena una version de la pagina para cada valor enviado, es decir habrá dos versiones de la pagina en la cache, claro por el tiempo que se haya configura la cache.

VaryByControl = "cboColor", almacena por un tiempo determinado, dependiendo de lo seleccionado en el control, generalmente usado por controles-listas, no lo he usado en controles como button o label, pero en combos si ve su utilidad, almacena una version de la página por cada seleccion en el combo, asi hize mi ejercicio, por cada color selecionado, almacena una version del control en la cache, por el tiempo asignado.

VaryByHeader = "Accept-Language", yo pense que esto era trancasa, pero si entiendes los dos anteriores, esto sigue la misma logica solo tienes que ver que es lo que varia, en este caso depende la cabecera enviada por el pedido del cliente en el HTTP, en es caso esta enviando la variable Accept-Language, y lo que hara será almacenar un version de la página por cada lenguaje del pedido que viene del usario en el HTTP (en ,es, etc), para ver todos las variables que se pueden enviar en el HTTP, aca se los dejo:
http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html.

Ahora si ah dormir, siendo las 05:58am, pero alegre porque mate un concepto y lo borro de mi ignorancia y lo envio por HTTP, a mi sabiduria. :S:. Sorry creo es por el sueño,

saludos,

No hay comentarios.: