2010-05-03 10 views
42

¿Cómo puedo desactivar la memoria caché en IE8? Estamos haciendo el desarrollo de Javascript y probándolo en IE8, pero tenemos que borrar el caché cada vez que hagamos cambios a los archivos de Javascript.Cómo deshabilitar la memoria caché en InternetExplorer 8

+1

Si tiene problemas con él, también podrían hacerlo sus usuarios. Es mejor utilizar una de las respuestas no aceptadas para forzar una actualización del servidor. – user420667

Respuesta

65

Ir a Opciones de Internet . En la ficha General, bajo Historial de navegación haga clic en Configuración. Seleccione el botón de opción "Cada vez que visite la página web".

Esto no "deshabilita" el caché per se, pero debería solucionar el problema subyacente: los archivos JS deben volver a cargarse cada vez.

+0

¿Funcionará esto el 100% del tiempo? – portoalet

+0

Eso no es algo que pueda garantizar, solo tendrá que probarlo. – EMP

+6

En mi experiencia esto no funciona para páginas anidadas o controles que contienen javascript. –

16

Ctrl +F5 debe causar una actualización de la página completa, incluyendo todo lo que javascript en caché.

Ocasionalmente, aún necesitará una memoria caché clara, porque incluso Ctrl + F5 no funcionará, por razones que van más allá de la comprensión, IE ni siquiera puede "actualizar" correctamente el 100% del tiempo.

+1

hm esto es bastante peligroso para el desarrollo, entonces .. – portoalet

11

Si eso falla, un parámetro de azar en la cadena de consulta lo hará:?

index.html a = 346456

3

Ctrl +Shift +Del se abrirá el cuadro de diálogo Borrar datos privados (o seleccionarlo en el menú de seguridad). Desmarque todo excepto los primeros dos elementos para borrar solo la caché.

No debería tener que borrar la memoria caché. Si accede a sus archivos js a través de un servidor web (como IIS ejecutándose localmente), los mecanismos normales de control de caché deberían hacer el truco. Si no lo hacen, un Ctrl + F5 generalmente soluciona el problema.

+0

El problema es que en producción queremos que el navegador use la memoria caché ya que los javascripts son masivos. ¿De qué mecanismo de control de caché estás hablando? – portoalet

+0

Estaba hablando de desarrollo y pruebas. Los encabezados 'Last-Modified',' If-Modified-Since' y 'ETag' de HTTP permiten al navegador y al servidor determinar si un archivo ha sido modificado, y si lo tiene, actualizar la versión en caché del navegador. – josh3736

+0

¡Impresionante, eso funcionó! Mi problema era que CSS no se procesaba cuando se cambiaba. 'Ctrl + Shift + Del' estaba *** no *** funcionando, sin embargo' Ctrl + F5' finalmente borró la caché. –

5

Para desactivar la memoria caché del navegador. Siga las instrucciones siguientes:

MS IE

  1. de un menú seleccione "Herramientas" para IE5 o "Ver" para IE4
  2. seleccione "Opciones de Internet"
  3. en "Archivos temporales de Internet" sección haga clic en "Configuración"
  4. seleccione "Cada visita a la página" para "Buscar versiones más nuevas de páginas almacenadas" guarde la configuración espero que esto pueda ayudar, por favor marque
+1

Para IE8 e IE9, vaya a Opciones de Internet -> pestaña General. En la sección Historial de navegación, haga clic en el botón Configuración y elija "Cada vez que visite la página web" en la sección Archivos temporales de Internet, luego haga clic en Aceptar. – furman87

+0

Lo mismo en IE 10 (para escritorio). – BrainSlugs83

10

Carga tu JavaScript de esta manera.

<html> 
... 
<script type="text/javascript"> 
document.write('<script src="yourscript.js?'+Math.random()+'"></script>'); 
</script> 
... 
</html> 

Editar: En caso de que esto no es evidente, eliminar este código tan pronto va a entrar en producción!

+2

Solo haga esto si está desarrollando, ya que el almacenamiento en caché está ahí para acelerar los tiempos de carga de la página para los navegadores buenos. Pero hacer esto dificultará volver y encontrar, así que tal vez use una variable en su lugar. –

+0

Realmente parece piratear y se puede olvidar fácilmente para eliminarlo antes de ponerlo en producción. –

0

Quizás una forma más sencilla de que el usuario no actualice el navegador es simplemente cambiar el nombre de los archivos js (y css). Esto es lo que funcionó para mí ... como al servidor no le gustaba un número aleatorio después del archivo .js

+1

Otro truco consiste simplemente en anexar una cadena de consulta * al final del archivo (es decir, "http://misitio.es/myscript.js?andom=B6646B155E" donde el valor aleatorio es diferente cada vez: el servidor debería ignorarlo, pero el navegador evitará el uso de una versión en caché.) Esto es útil cuando A.) ​​quiere obligar a TODOS los clientes a obtener la última secuencia de comandos (no solo su máquina de desarrollo) y B.) usted no tener acceso a la configuración del servidor (como cuando una página caduca). – BrainSlugs83

2

Si sus archivos javascript se sirven exclusivamente desde un subdirectorio, podría habilitar la caducidad inmediata del contenido para ese directorio en IIS. Hace poco tuve este problema al servir contenido de un subdirectorio y esta fue la solución más rápida y simple que encontré.

+1

Parece la mejor solución y funciona independientemente del servidor (no solo de IIS). –

1

Abra las herramientas de depuración de IE (F12), caché en el menú y seleccione siempre actualizar desde el servidor. Esto significa que debe mantener abiertas las herramientas de depuración.

4

éxito "Fn F12" para abrir las herramientas de desarrollo

caché clic

elegir "Siempre actualizar desde el servidor"

Cada vez que se actualiza se debe borrar la memoria caché, pero también son rápidos acceda a la eliminación de caché desde el menú de caché o los accesos directos que están activos cuando las herramientas de desarrollo están abiertas.

* Nota: debe dejar abierta la ventana de herramientas de desarrollo, no tiene que estar en primer plano, pero debe permanecer abierta para que la memoria caché permanezca desactivada.

Cuestiones relacionadas