2009-05-12 4 views

risposta

9

È possibile aggiungere un meta-tag come questo.

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

ONE aproach potrebbe aggiungere un 'Expires o un'intestazione di Cache-Control'.

Questo è stato estratto da Yahoo Best Practices (http://developer.yahoo.com/performance/rules.html)

Ci sono due cose in questa regola:

* 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 

browser (e proxy) utilizzare una cache per ridurre il numero e la dimensione dei HTTP richieste, facendo caricare più velocemente le pagine web. Un server Web utilizza l'intestazione Expires nella risposta HTTP per comunicare al client per quanto tempo un componente può essere memorizzato nella cache. Si tratta di un lontano futuro Expires, dicendo al browser che questa risposta non sarà stantio fino al 15 aprile 2010.

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

Se il server è Apache, utilizzare la direttiva ExpiresDefault per impostare una data di scadenza relativa al data odierna. Questo esempio della direttiva ExpiresDefault imposta la data di scadenza a 10 anni dall'ora della richiesta.

ExpiresDefault "access plus 10 years" 

Quindi, in sostanza si sarà in grado di impostare la data di scadenza per 'comunicare' al browser che nella cache componente è scaduto. Pertanto il browser andrà a richiedere nuovamente il sito.

Supponendo che sia necessario per lo sviluppo Web, un altro modo sarebbe quello di forzare la cancellazione della cache. su Firefox, questo può essere fatto attraverso CTRL + F5 o CTRL + MAIUSC + R.

Spero che questo aiuti, Lucas

3

Impostare l'intestazione Cache-Control su no-cache.

6

Nei nostri progetti ASP.Net creiamo una BasePage ereditata da tutte le altre pagine. Nella pagina base abbiamo una funzione

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 

Lo chiamiamo su qualsiasi pagina che non vogliamo memorizzato nella cache.

+0

le righe: 1.-.AddHeader ("cache-control", "no-cache") 2.- .CacheControl = "no-cache" Stanno facendo esattamente la stessa cosa che aggiunge un controllo cache di intestazione con valore "no-cache". – backslash17

+0

In qualsiasi modo: questo è il modo corretto di farlo in VB.NET – backslash17

+0

Ho rimosso la riga duplicata - thx backslash17 –

1

Una soluzione potrebbe essere quella di aggiungere una variabile QueryString all'URL che è un GUID casuale, ma che sembra un po 'disordinato

Perché disordinato? È il modo più affidabile. Non è necessario guidare, potrebbe essere l'ora corrente.

+1

Sono d'accordo. Questo è un modo abbastanza sicuro per realizzare ciò che desideri su una vasta gamma di browser. Generalmente aggiungo un parametro alla querystring come & nocache = {URLENCODEDDateTime} – JohnFx

+0

Non intendevo offenderlo. Semplicemente non mi sembra giusto. – Slim

+0

Uno dei principali svantaggi è che i motori di ricerca possono considerare ogni singolo URL come una pagina separata. per esempio. index? guid = 1234 e index? guid = 1235 sono URL distinti per quanto riguarda la maggior parte dei motori di ricerca, anche se contengono lo stesso identico contenuto. Gli URL servono per identificare le risorse, le intestazioni servono per controllare la memorizzazione nella cache. –

2

provare uno qualsiasi di questo:

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

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

vedere anche questo question.