Foros del Web » Programando para Internet » ASP Clásico »

Headers CacheControl y Expires

Estas en el tema de Headers CacheControl y Expires en el foro de ASP Clásico en Foros del Web. Hola, he estado investigando sobre como hacer para que al presionar el boton Back o Atrás del Navegador no se muestre la pagina web, sino ...
  #1 (permalink)  
Antiguo 30/03/2008, 00:05
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Pregunta Headers CacheControl y Expires

Hola, he estado investigando sobre como hacer para que al presionar el boton Back o Atrás del Navegador no se muestre la pagina web, sino un mensaje al estilo:

Cita:
Advertencia: La página solicitada ha caducado.
Esta página no está ya disponible. Como medida de precaución, el navegador no volverá a enviarle la información.
Para volver a enviar la información y ver esta página Web vuelva a entrar a la Aplicación.
Porque es una parte del sitio donde se ingrea con Login mediante Session.

Mediante este metodo quiero forzar al usuario a utilizar mis botones personalizados de Atras, si quiere volver a una pagina principal o algo asi; y no el del explorador que muestra informacion vieja guardada en cache, que genera confusion y pareciera que los datos no se actualizaron en la base de datos cando por ejemplo apreto el boton enviar.

Bueno... la cuestion es que encontre lo siguiente, y no se cual es mejor, cual es mas completo, y si tiene errores... En fin:

Código:
<%
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = 0 'Caduca instantáneamente
Response.CacheControl = "Private" 'Esto tengo entendido que es para que no se cacheé la pagina en los posibles servidores proxys por los que pase, no se si es lo mismo que el "no-cache" de mas arriba...
%>
Código:
<HEAD>
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>
Otra cosa que he leido por ahi es que si pongo Expires = 0 caduca instantaneamente, pero si atraso la hora de Windows, la pagina no esta caducada... por eso en vez de poner 0 ponen -1000

Realmente estaria bueno que alguien bien entendido en el tema me pueda decir que hace o para que sirve cada cosa... Aunque cualquier aproximacion tambien es valida, para que sino, etre todos, saquemos la respuesta.

Algunas paginas que pueden ayudar:

http://msmvps.com/blogs/pmackay/archive/2004/08/10/bot-243-n-quot-atras-quot-del-navegador.aspx

http://support.microsoft.com/kb/234067

http://www.desarrolloweb.com/articulos/301.php

http://webcoder.info/reference/Response.CacheControl.html

http://www.robertbody.com/prog/html.html

Por cierto... ninguno de los metodos me funciona a mi... eso es lo peor... uso IIS de WinXP SP2. Ayudaaaa!!!!

Última edición por i_e_s27; 30/03/2008 a las 07:13
  #2 (permalink)  
Antiguo 31/03/2008, 08:27
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Headers CacheControl y Expires

Basicamente, la primera la dice al servidor que esa página no se vaya al caché; la segunda le dice al cliente que siempre solicite una versión nueva de la página.

La primera no te funcionará si ya estaba en el caché antes de que lo pusieras (por eso lo del reloj), pero con las etiquetas META debería de funcionarte, aunque veo que reescribes CacheControl. Más bien debes agregar la cabecera private en el Header.

Response.AddHeader "Pragma", "no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:25.