2009-08-13 7 views
8

¿Hay alguna manera de construir un enlace a una URL que obligue al navegador a ignorar cualquier caché que pueda tener para esa URL?Enlace HTML que obliga a actualizar?

Tenemos algunos sitios web que han cambiado recientemente después de literalmente años de contenido estático. Los usuarios hacen clic en accesos directos, favoritos o escriben URL en estos sitios y obtienen contenido viejo y guardado en la memoria caché. Me gustaría tener una página con un enlace que vaya a la misma URL pero obliga al navegador a obtener el contenido nuevo.

¿eso es posible? Cross-browser?

Respuesta

10
  1. cambiar todos los enlaces a la página con un parámetro de consulta sin sentido:? = Productos.html felices días
  2. cambiar todos los recursos de la página para utilizar otra consulta sin sentido parámetro:? = Style.css la fonz

Puede hacerlo de forma sistemática usando fechas o marcas de tiempo o números de versión, o al azar usando comedias de situación, muppets, cadenas montañosas y pequeños mamíferos.

+0

¿Conoce una manera de formar una dirección URL que obliga a los atajos para ser refrescado? Por ejemplo, veo cómo www.abc.com/?happy=days sería contenido nuevo, pero si tuviera un acceso directo a www.abc.com, ¿se actualizaría también? – n8wrl

+0

Tom, ¿estás diciendo que uno necesitaría hacer ambas cosas o solo una de ellas? –

+2

Me doy cuenta de que esto es antiguo, pero +1 para las sugerencias de parámetros. –

4

añadir un parámetro url para el final del href con un valor único, digamos new Date() getTime():.

...somePage.html?time=123456789 
0

Mucha gente utiliza un parámetro de cadena de versión consulta.

Mira la fuente de SO

<script type="text/javascript" src="http://sstatic.net/so/js/master.js?v=4143"></script> 

cuenta Específicamente los master.js? V = 4143

En lo personal, he de poner esto en mi archivo de configuración que es amplia aplicación, pero te creo puede hacer esto bien en su control de fuente si necesita versiones más granulares automáticas.

2

Cuando necesito tener una actualización completa de la página, simplemente agrego ?v= seguido de una cadena aleatoria de caracteres. Cuando los navegadores detectan una cadena de consulta después de una página, omiten automáticamente la caché (si la misma cadena de consulta no está presente en la versión en caché), ya que el contenido de la página podría cambiar según el valor de la cadena de consulta.

Desde una página web puede ser recargada más de una vez por segundo, yo uso el valor timestamp UNIX seguido de una letra y un número aleatorio entre 1 y 1000.

Las posibilidades de que dos páginas obtener exactamente la misma consulta cadena están cerca de nulo.

0

enlace HTML fuerzas que refrescan con javascript:

Cuestiones relacionadas