Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Utilización o no de la Caché


Vemos las herramientas que están a nuestra disposición en ASP que nos ayudan a controlar el uso de la caché de los navegadores y servidores proxy.


01/1/70 - Es habitual que los programadores de páginas dinámicas se las tengan que ver con la caché en algunas ocasiones y tengan que evitar que los navegadores la utilicen para que todo marche correctamente. Existen varias opciones con las que configurar el comportamiento de la caché a través de las cabeceras del HTTP, que son las que vamos a introducir en este capítulo.

Por lo general los navegadores guardan una copia de cada archivo al que acceden en la caché del navegador y cuando consultan otra vez un archivo que ya tienen en la caché local comprueban la fecha de la copia que tienen con la que está en el servidor. Si las dos tienen la misma fecha de modificación el servidor le envía un mensaje informándolo. Si por el contrario, la página que está en el servidor es más nueva, el servidor la envía al cliente. Esta comprobación puede ser alterada gracias a las cabeceras del HTTP, a través de las propiedades Response.Expires y Response.ExpiresAbsolute.

Response.Expires

Sirve para indicar, en minutos, el tiempo que ha de pasar hasta que la página caduque. Durante este tiempo no se solicitará la página al servidor y se utilizará la página que está en la caché.

<%
response.expires=2 'caducara a los 2 minutos
%>


Si igualamos la propiedad a 0, la página caduca instantáneamente, con lo que se evita la caché

<%
response.expires=0 'caduca instantáneamente
%>


Response.ExpiresAbsolute

Con esta propiedad se puede expresar el momento exacto en el que caducará la página y a partir del cuál el navegador no debe tomarla de la caché.

<%
response.expiresAbsolute=dateAdd("yyyy",1,now) 'caducara dentro de un anyo
%>


En este ejemplo se define que la página caduque al año de haberse recibido, puesto que se utiliza la función dateAdd() para añadir un año a la fecha actual. Podríamos haber puesto cualquier otra fecha compuesta por el día y la hora con el formato correspondiente en nuestro sistema.

Ejemplos:

Podemos ver a continuación unos ejemplos online con cada una de estas tres posibilidades. Los resultados que se obtienen en estos ejemplos pueden variar puntualmente en algún navegador, pero las pruebas realizadas con varios navegadores han dado resultados positivos.

Páginas públicas o privadas

En ocasiones es importante controlar la privacidad de la información que se manda. Supongamos que en nuestro acceso a Internet tenemos un proxy cerca. Los servidores proxy tienen su propia memoria caché y si un usuario accede a una página a la que ya había accedido otro usuario posiblemente el proxy le envíe la copia de la página que tenía en su memoria caché. En algunas ocasiones nos interesará que la página la sirva el proxy y en otras nos interesará que la página la sirva directamente el servidor y esto lo podremos dominar fácilmente con Response.Expires. Pero hay un caso especial en el que puede ser especialmente problemático que un usuario acceda a una página que estaba construida para otro, por ejemplo en el caso de que la información fuese confidencial o extraída para el usuario primero.

Para evitar que páginas con contenidos personales se puedan mandar a otras personas distintas de su dueño por culpa de los servidores proxy está la propiedad Response.CacheControl. Si le asignamos el valor "Private" la página no será guardada por los servidores proxy. Si le asignamos el valor "Public" las páginas si que se almacenarán en los servidores proxy y podrán ser enviadas a otras personas.

<%
Response.CacheControl = "Public"
%>

<%
Response.CacheControl = "Private"
%>


Otro truquillo

Otra manera de evitar la caché se puede realizar de una manera más artesanal. Se trata de conseguir que la URL a la que accedemos siempre varíe. Como siempre será distinta nunca se buscarán los archivos de la caché.

Conseguir que el URL de la página sea siempre distinto se puede hacer gracias al paso de parámetros por la URL, aunque luego en la página no utilicemos los parámetros para nada, conseguiremos que la URL varíe. Para mandar en un parámetro siempre un número distinto podemos adjuntar una variable que construimos con la hora del sistema.

<%
Tiempo_url = year(now) & month(now) & day(now) & hour(now) & minute(now) & second(now)
%>
<a href="ejemplocachev21.asp?parametro=<%=Tiempo_url%>">Ver</a>


Vemos cómo se construye un enlace que tiene un parámetro que cambia cada segundo. Podemos verlo funcionando para que quede más ilustrado.

No llegar a guardar la página en la caché

Puede ser útil decirle al navegador que no llegue a guardar la página en la caché mandándole una cabecera especial en el HTTP, sobretodo en casos como el anterior, que estamos guardando muchas páginas en la caché, una por cada vez que se accede con un parámetro distinto en la URL.

<%
Response.AddHeader "PRAGMA", "NO-CACHE"
%>


Con Response.AddHeader se pueden mandar más tipos de encabezamientos del http como la fecha de modificación del documento (LAST-MODIFIED) o el tiempo en el que se tiene que realizar un refresco de la página (REFRESH).

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 2 categorias relacionadas
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de ASP
Siguiente: Objeto Server

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en ASP
+ Entrar en Manuales de ASP


 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de ASP
Categorías
+Scripts en ASP
+Manuales de ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia