2011-08-05 8 views
5

Tengo una aplicación alimentada por php con javascript y muchas llamadas jax. mi aplicación está funcionando hasta la fecha en Firefox. pero cuando lo ejecuto en Internet Explorer 8 o versiones similares, mi llamada ajax se almacena en mi navegador, por lo que no puedo mostrar la información actualizada con las llamadas ajax, sino que el resultado es que las llamadas ajax se sirven con datos antiguos que residen en el caché del navegador.Cómo deshabilitar la caché de Internet Explorer usando javascript o php

I have tried lots of possible options as listed below 

1.) I added following meta tag in header files 


<meta http-equiv='cache-control' content='no-cache'> 
<meta http-equiv='expires' content='0'> 
<meta http-equiv='pragma' content='no-cache'> 

2.) que añade el texto siguiente código php

header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past 
header('Pragma: no-cache'); 

Pero aún así los mayores de 2 enfoques no han conseguido solucionar mi problema, es decir, por favor alguien me puede ayudar a deshabilitar el caché de Internet Explorer cuando mis ejecuta la aplicación, para que sea posible obtener información actualizada.

gracias de antemano

+0

La segunda solución con encabezados HTTP debería funcionar. Solo asegúrese de que los encabezados realmente se envían (use web-sniffer.net), borre la memoria caché del navegador (los archivos probablemente se almacenaron en la memoria caché cuando no se enviaron encabezados) y revísela una vez más. – duri

+0

* Agregué el siguiente código php * - ¿en qué archivo? Los encabezados de respuesta deben ir en su script AJAX. –

+0

@duri No creo que la solución funcione si un elemento ya está en caché. Creo que es posible que puedas actualizar mucho usando javascript => http://stackoverflow.com/questions/2099201/javascript-hard-refresh-of-current-page/2099205#2099205. El resto de los elementos creo que debería versionar usando algo como filemtime() – Alfred

Respuesta

8

hacer que cada petición AJAX única de alguna manera. Eso evitará que IE guarde en caché la respuesta.

Por ejemplo, si su URL normal de consulta AJAX es www.mysite.com/ajax.php?dog=cat, añadir en un parámetro de cadena de consulta a cada solicitud AJAX que es único:

www.mysite.com /ajax.php?dog=cat & queryid = 1

Incremente ese parámetro cada vez que realice una solicitud de AJAX, y eso debería ser el truco para usted.

+0

nice pseudo code 'dog = cat'; p –

+0

ya he hecho cada solicitud de ajax única al agregar la hora actual con segundos, pero estoy buscando una mejor manera de obtener una solución genérica para todos mis archivos y todas las solicitudes pueden hacer por favor ayuadame. –

+1

'url +" & rand = "+ Math.floor (Math.random() * 11)' –

Cuestiones relacionadas