Una soluzione potrebbe essere quella di aggiungere una variabile QueryString all'url che è un guid casuale, ma sembra un po 'disordinato. Esiste un'impostazione da qualche parte che impedirà al browser di visualizzare una versione cache di una pagina?Come si impedisce al browser di visualizzare una versione cache di una pagina?
risposta
È possibile aggiungere un meta-tag come questo.
<meta http-equiv="pragma" content="no-cache" />
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
Impostare l'intestazione Cache-Control su no-cache.
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.
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
In qualsiasi modo: questo è il modo corretto di farlo in VB.NET – backslash17
Ho rimosso la riga duplicata - thx backslash17 –
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.
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
Non intendevo offenderlo. Semplicemente non mi sembra giusto. – Slim
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. –
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.
L'aggiunta di una variabile di querystring generata a caso era un trucco molto vecchio;) – backslash17