Perché Safari non onorare la mia direttiva Cache-Control?
-
25-09-2019 - |
Domanda
C'è una pagina particolare che vorrei il browser per sempre carico, soprattutto quando l'utente preme il tasto indietro del browser per arrivare ad essa.
Quindi, io uso la seguente direttiva 'Cache-Control' nell'intestazione per questa pagina (prendendo il PHP direttamente dal mio codice).
$headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, max-age=0';
Questo funziona per FF, IE e Chrome, ma Safari (5.0.1) sembra ignorare la direttiva e non riesce a ricaricare la pagina (tra più utenti, in modo che non sembra essere un problema specifico di impostazione). La ricerca non ha rivelato alcun bug conosciuti, così sto assumendo c'è qualcosa che non va sulla mia estremità.
Tutti gli indicatori sarebbe molto apprezzato.
Aggiornamento:. Appena trovato questa risposta su SO
Non ho ancora provato, ma sembra promettente. Molto strano che si tratta di un'aggiunta al tag body, così Im scettico.
Soluzione
La risposta è quello di includere il seguente attributo nel tag corpo per forzare Safari per ricaricare la pagina:
onunload=""
Come in:
<body onunload="">
Ho trovato questo qui: il browser Safari ignorando la mia no-cache
Che a sua volta ha ottenuto da questa discussione: C'è una croce -browser onload evento quando si fa clic sul pulsante indietro?
Altri suggerimenti
Si veda anche questo rapporto Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=71509
sto vivendo lo stesso problema, e sembra essere quello di essere un bug in Safari.