2009-05-12 8 views

Respuesta

9

Puede añadir una etiqueta meta de esta manera.

<meta http-equiv="pragma" content="no-cache" /> 
3

ONE approach sería agregar un 'Expira o un encabezado de control de caché'.

Esto ha sido extraído de Yahoo Buenas Prácticas (http://developer.yahoo.com/performance/rules.html)

Hay dos cosas en esta regla:

* For static components: implement "Never expire" policy by setting far future Expires header 
* For dynamic components: use an appropriate Cache-Control header to help the browser with conditional requests 

navegadores (y proxies) utilizan una memoria caché para reducir el número y tamaño de HTTP solicitudes, lo que hace que las páginas web se carguen más rápido. Un servidor web utiliza el encabezado Expira en la respuesta HTTP para indicar al cliente cuánto tiempo se puede almacenar en caché un componente. Se trata de un futuro lejano Expira cabecera, diciendo al navegador que esta respuesta no será rancio hasta el 15 de abril de 2010.

Expires: Thu, 15 Apr 2010 20:00:00 GMT 

Si el servidor es Apache, utilice la directiva ExpiresDefault para establecer una fecha de caducidad en relación con el fecha actual. Este ejemplo de la directiva ExpiresDefault establece la fecha de vencimiento 10 años a partir del momento de la solicitud.

ExpiresDefault "access plus 10 years" 

Así que, esencialmente usted será capaz de establecer la fecha de caducidad a 'informar' al navegador que almacena en caché componente ha expirado. Por lo tanto, el navegador irá y solicitará el sitio nuevamente.

Suponiendo que necesita esto para el desarrollo web, otra forma sería forzar borrar el caché. en Firefox, esto puede hacerse a través de CTRL + F5 o CTRL + SHIFT + R

Espero que esto ayude, Lucas

3

Establezca el encabezado Cache-Control en no-caché.

6

En nuestros proyectos ASP.Net creamos una BasePage heredadas de todas las otras páginas. En la página base que tenemos una función

Public Sub DisableCaching() 
    With Response 
     .Expires = 0 
     .ExpiresAbsolute = Date.Today.AddDays(-1) 
     .AddHeader("pragma", "no-cache") 
     .AddHeader("cache-control", "no-cache") 
    End With 
End Sub 

A eso le llamamos en cualquier página que no queremos en caché.

+0

las líneas: 1.-.AddHeader ("cache-control", "no-cache") 2.- .CacheControl = "no-cache" Están haciendo exactamente lo mismo que agregar un control de caché de encabezado con valor "no-cache". – backslash17

+0

Cualquier forma: esta es la manera correcta de hacerlo en VB.NET – backslash17

+0

Quité la línea duplicada - barra diagonal inversa17 –

1

Una solución sería añadir una variable de cadena de consulta de la dirección URL que es un GUID aleatorio, pero que parece un poco desordenado

Por qué desordenado? Es la forma más confiable. No es necesario guid, podría ser la hora actual.

+1

Estoy de acuerdo. Esta es una forma bastante segura de lograr lo que desea en una amplia gama de navegadores. Normalmente solo agrego un parámetro a la cadena de consulta como & nocache = {URLENCODEDDateTime} – JohnFx

+0

No quise ofender. Simplemente no me parece bien. – Slim

+0

Una gran desventaja es que los motores de búsqueda pueden considerar que cada URL sea una página separada. p.ej. index? guid = 1234 e index? guid = 1235 son URL distintas en lo que respecta a la mayoría de los motores de búsqueda, incluso si contienen exactamente el mismo contenido. Las URL son para identificar recursos, los encabezados son para controlar el almacenamiento en caché. –

2

probar cualquiera de esto:

Response.Cache.SetExpires(DateTime.Now.AddSeconds(360)); 
Response.Cache.SetCacheability(HttpCacheability.Private) 
Response.Cache.SetSlidingExpiration(true); 

Page.Response.Cache.SetCacheability(HttpCacheability.NoCache) 

También vea este question.

Cuestiones relacionadas