Was ist die richtige Methode zum Einrichten des Javascript, das beim Laden der Seite ausgeführt werden muss, wenn Sie Rails Turbolinks 5.0 verwenden? Der Code muss bei jedem Laden der Seite genau einmal ausgeführt werden, selbst wenn die Seite in einem Browser angezeigt wird, in dem Turbolinks nicht funktionieren.Fallback für Turbolinks 5.0 mit jQuery ready()
Der folgende Code macht den Job, wenn Turbolinks Arbeit tun:
function setupPage() {
// Setup code that cannot run more than once.
}
// Fires with every page request (full or triggered with Turbolinks)
$(document).on('turbolinks:load', function(){
setupPage();
});
Wenn der Browser Turbolinks nicht unterstützt Ich habe immer noch die einrichten Code ausführen. das heißt etwa so:
// Fires only with full page reload - Intended as a fallback for when Turbolinks are not supported by the browser.
$(document).ready(function(){
setupPage();
});
Das Problem ist die oben Ausweichlösung bewirkt, dass die setupPage()
Funktion zweimal auf der ganzen Seite neu laden laufen, wenn Turbolinks unterstützt werden.
Wie ist der standardmäßige Umgang mit diesem Problem?