Foros del Web » Programando para Internet » PHP »

Caché persistente

Estas en el tema de Caché persistente en el foro de PHP en Foros del Web. Hola, soy nueva en este foro pero llevo unos añitos trabajando en php. Estoy desarrollando una página con contenidos que cambian constantemente mediante gestión documental. ...
  #1 (permalink)  
Antiguo 14/03/2007, 09:47
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 1 mes
Puntos: 0
Caché persistente

Hola, soy nueva en este foro pero llevo unos añitos trabajando en php.

Estoy desarrollando una página con contenidos que cambian constantemente mediante gestión documental. No debe hacer uso de la caché. He probado a poner etiquetas meta en cada página, a poner headers de php o las dos cosas a la vez sin conseguir que no muestre datos antiguos:

<meta http-equiv="Expires" content="Tue, 01 Jan 2000 12:12:12 GMT">
<meta http-equiv="Last-Modified" content="0">
<meta http-equiv="Cache-Control" content="no-cache, mustrevalidate">
<meta http-equiv="Pragma" content="no-cache">

header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()-86400*365*10) . ' GMT');
header('Expires: ' . gmdate('D, d M Y H:i:s', time()-86400*365*10) . ' GMT');
// HTTP/1.1
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
// HTTP/1.0
header('Pragma: no-cache');

Tengo que estar continuamente pulsando Ctrl. F5, cosa que no puedo pedir a los clientes.

Espero que alguien pueda ayudarme porque estoy deseperada.

Gracias
  #2 (permalink)  
Antiguo 16/03/2007, 12:06
Avatar de iskariote  
Fecha de Ingreso: marzo-2007
Mensajes: 39
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: Caché persistente

estimada:

yo realize un BALANCE SCORECARD, el cual por medio de datos dinamicos creo graficas y tablas, y tenia el mismo problema.

esto lo solucione usando la siguiente funcion

Código PHP:
        function cabecera()
         {
         
header'Expires: Mon, 26 Jul 1997 05:00:00 GMT' );
         
header'Last-Modified: ' gmdate'D, d M Y H:i:s' ) . ' GMT' );
         
header'Cache-Control: no-store, no-cache, must-revalidate' );
         
header'Cache-Control: post-check=0, pre-check=0'false );
         
header'Pragma: no-cache' );
         } 
la cual no varia mucho de tu codigo, pero lo que si me funcaba es que toda la parafernalia de marcos y menus lo armaba primero, sin estas cabeceras para que no cargase nuevamente las imagenes, y en un iframe cargaba el grafico o la tabla, y en esa le mandaba la funcion descrita.

con esto se acabaron los problemas de la cache...

atte,

ISKARIOTE
  #3 (permalink)  
Antiguo 20/03/2007, 03:29
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Caché persistente

Hola iskariote

No me va a ser posible trabajar con iframes porque realmente necesito que se actualice toda la página, ya que dependiendo del usuario que acceda a la aplicación va a ver unos menús según sus permisos y desde el mismo ordenador se pueden conectar distintos usuarios. Además, por el diseño de la página no puedo establecer una zona para iframe con toda la información a actualizar. Eso sumado a que ahora mismo tengo hechas más de 30 páginas y me resulta muy complicado modificar el código para que se trabaje con iframes.

Pero, de todas formas, muchas gracias por tu ayuda.

No sé si a ti o a alguien se le ocurre alguna otra idea.
  #4 (permalink)  
Antiguo 20/03/2007, 03:34
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 18 años, 8 meses
Puntos: 1
Re: Caché persistente

Pues en un principio esas cabeceras deberían funcionar sin problema, yo todo lo que hago con ajax le meto esas cabeceras de anticache y listo. fijate si están en las páginas que estás usando.

Salu2.
__________________
www.pensandoenred.com
  #5 (permalink)  
Antiguo 22/03/2007, 01:31
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Caché persistente

Hola

He conseguido que en una página no lea de caché, sin usar iframes y poniendo estas cabeceras:

header("Expires: Tue, 01 Jan 2000 12:12:12 GMT");
header("Last-Modified: 0");
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");

Después de leer mucho en internet he visto que sólo si se ponen las cabeceras con la función header() en vez de las etiquetas meta directamente en la página funciona, porque las meta suelen ser ignoradas por las caché proxy.

Aún así, en otras páginas sigue sin hacerme mucho caso. No entiendo porqué, pero seguiré probando.

Gracias por vuestra ayuda.
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 13:02.