Se si dispone di una pagina che non dovrebbe mai essere memorizzata nella cache e deve sempre essere recuperata dal server, come posso ottenere i turbolinks per farlo quando l'utente preme il pulsante Indietro? Rispetterà semplicemente le direttive di controllo della cache dalla risposta http?Come ottenere i turbolinks per recuperare sempre una pagina dal server
risposta
Questo è cambiato in Turbolinks 5, ora è necessario impostare questo a livello <head>
per una pagina da non essere memorizzata nella cache:
<head>
...
<meta name="turbolinks-cache-control" content="no-cache">
...
</head>
Riferimento: https://github.com/turbolinks/turbolinks#opting-out-of-caching
Non è possibile disabilitare l'effetto turbolinks dopo che l'utente ha visitato la pagina abilitata per il turbolink e anche se si disabilitano i turbolinks, quando si preme il pulsante indietro dell'utente, è possibile che venga visualizzata la pagina del browser.
parte quest'ultima non è eludibile, ma una parte di formattazione è la facilità di fuggire con la forza rendendo normale link impostando data-no-turbolink
al link che porta a sempre bisogno di essere recuperare pagina come questa
<div>
<a href="retrieve_always.html" data-no-turbolink>Special Page</a>
<a href="normal_page.html">NormalPage</a>
</div>
e anche, si può impostare data-no-turbolink
più globalmente
<div data-no-turbolink>
<a href="retrive_page1.html">Retrive page 1</a>
<a href="retrive_page2.html">Retrive page 2</a>
</div>
In questi casi, tutte le pagine recuperare necessaria è memorizzato nella cache dal browser, non da turbolinks e per questo, di nuovo premuto il tasto manipolazione delegata al browser.
È possibile effettuare le seguenti operazioni per avere turbolinks sempre prendere la pagina dal server per tutte le pagine (che, almeno nel mio caso è il comportamento desiderato, così via facendo clic sul pulsante Indietro la pagina è aggiornata, anche):
// js
Turbolinks.pagesCached(0);
Oppure, secondo il doc per disattivarlo per un sito, è sufficiente aggiungere un attributo data-no-transition-cache
ad ogni elemento, così per esempio sul sito non si vuole essere memorizzate nella cache di aggiungere al corpo:
<body data-no-transition-cache>...</body>
La risposta breve è no, non è possibile disabilitare la visualizzazione di una copia cache di una pagina quando viene premuto il pulsante Indietro. Tale comportamento sarebbe diverso dal comportamento predefinito dei browser, che Turbolinks tenta nel modo migliore di imitare.
Se si visita un sito Web, fare clic su alcuni collegamenti e quindi premere il pulsante Indietro, si noterà che il browser visualizza una copia memorizzata nella cache. Per quanto ne so, non può essere disabilitato a livello di browser.
Io non sto cercando di disattivare le turbolinks effetto, voglio solo contrassegnare una pagina come "non dovrebbe mai essere memorizzata nella cache", in modo tale che i turbolink lo prelevano dal server ogni volta, come se fosse la prima volta che andavi a quel link –
Non puoi disabilitare per memorizzare nella cache la pagina con turbolinks. Turbolinks memorizza sempre nella cache la pagina in cui l'utente visita. Se sei desideroso di recuperare dal server ogni volta, devi inserire '' in una pagina così speciale. – yasuoza