Come arbitrato per Rails 5 Awesome features
Turbolinks ha fatto parte di Rails a partire dalla versione 4, probabilmente una delle caratteristiche che le persone lo odiano o amore; non c'è una via di mezzo qui.
Con Rails 5 riceveremo una nuova versione che, con l'aiuto degli attributi di dati personalizzati HTML5, ci aspettiamo una migliore velocità e rendering nelle nostre applicazioni Rails.
Il cambiamento più significativo in questa nuova versione è la funzione di sostituzione parziale. Dal lato del cliente, saremo in grado di comunicare a Turbolinks quali contenuti abbiamo bisogno di cambiare/sostituire e cosa no.
I turbolinks cercano gli attributi personalizzati HTML5 e decidono la strategia di sostituzione nel nostro.
Per attivare una sostituzione sul lato client, è possibile utilizzare o aggiornare la nostra. La differenza tra ed è che il primo emetterà un server per ottenere l'HTML che deve essere usato per sostituire il nostro mentre ci aspetta l'HTML che dovrebbe essere usato per il suo funzionamento.
Con entrambe le funzioni, possiamo passare un hash con una o una serie di elementi HTML in o.
Action Result
Turbolinks.visit(url, { change: ['entries'] }) Will replace any element with custom attribute and any element with its id listed in change.
Turbolinks.visit(url) Will keep only elements with custom attribute and replace everything.
Turbolinks.visit(url, { keep: ['flash'] }) Will keep only elements with custom attribute and any element with its id listed in keep, everything else will be replaced.
Turbolinks.visit(url, { flush: true }) Will replace everything
Siamo in grado di innescare la stessa funzionalità dal lato server con e, entrambi in grado di ricevere e come opzioni, ma può anche ricevere con o per forzare un reindirizzamento con o senza Turbolinks.
Se ti piace Turbolinks o meno, questo potrebbe essere un buon momento per provare e scoprire se potrebbe essere una buona misura da qualche parte nella vostra applicazione.
cosa esattamente non stai caricando per dire? –
apro il mio sito www.example.com -> tutto bene apro un'altra pagina -> www.example.com/xyz, quindi fai clic sul pulsante Indietro, ora la pagina non viene visualizzata correttamente. –
Vuoi dire che il rendering della pagina non funziona? o le funzioni JS non si stanno caricando? –