Come impedire al browser client di eseguire la sua versione cache per una pagina, in modo che debba sempre eseguire un GET quando il visitatore visita la pagina?Il browser continua a eseguire il rendering della sua versione cache. Voglio forzare sempre un GET
Sto utilizzando il decoratore @never_cache di Django nella vista, che aggiunge "Cache-Control: max-age = 0" all'intestazione GET HTTP. Tuttavia, quando visito la pagina (in Google Chrome e Firefox, gli unici browser che ho provato finora), la versione cache viene inevitabilmente resa. (Confermato visitando la scheda di rete per la richiesta, che riporta "200 OK (dalla cache)".)
Se ora si fa clic sul pulsante Aggiorna, renderà la fresca contenuto dal server (Network scheda per la richiesta dice: "200 OK" e le intestazioni come illustrato di seguito)
invece di impostazione. "cache-Control: max-age = 0" ho anche provato a installare il "scade" parametro di intestazione HTTP per essere un appuntamento nel passato Questo non ha funzionato neanche.
Request Method:GET
Status Code:200 OK
Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
If-Modified-Since:Fri, 17 Feb 2012 15:25:21 GMT
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
Response Headers
Cache-Control:max-age=0
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Fri, 17 Feb 2012 15:55:11 GMT
ETag:"[removed]"
Expires:Fri, 17 Feb 2012 15:55:11 GMT
Last-Modified:Fri, 17 Feb 2012 15:55:11 GMT
Server:nginx
Transfer-Encodindg:chunked
Vary:Cookie,Accept-Encoding
X-Handled-By:127.0.0.1:8000
costa usare "no-cache", invece fix il problema? Vedi qui: http://stackoverflow.com/questions/1046966/whats-the-difference-between-cache-control-max-age-0-and-no-cache non sai come impostare quello da Django però. –
Non l'ho provato. Così facendo ... – ram1
Non ha funzionato, Graham. Ho impostato l'intestazione Cache-Control su "no-cache" e ancora Chrome fornisce la versione cache della pagina, evitando la richiesta GET. Ancora una volta, posso fare clic sul pulsante Aggiorna di Chrome a questo punto per ottenere il nuovo contenuto, ma naturalmente voglio impedire agli utenti di farlo. – ram1