Ich bin es gewohnt, meinen JS am unteren Rand meines Body-Elements (wie HTML5Boilerplate), aber seit TurboLinks, die in Rails 4 on by default wird, lädt den Körper (und Titel) auf jede Anfrage, würde es Sinn machen um mein JS von nun an in den Kopf zu setzen? Gibt es diesbezüglich noch anständige Anleitungen oder Best Practices?Schienen 4 + Turbolinks: JS im Kopf oder an der Unterseite des Körpers?
Antwort
Auch die vorkompilierte application.js (gemäß der Assets-Pipeline) ist standardmäßig auf und im Kopf. Die Begründung ist, dass, selbst wenn die js vor dem Rest der Seite geladen wird, da die js immer gleich ist, wird es von der zweiten Anfrage an aus dem Cache geladen, so dass es keinen wirklichen Grund gibt, es am Ende der Seite zu bedienen Körper mehr.
Wenn Sie Turbolinks 5 verwenden, können Sie nun Turbolinks am unteren Rand Ihres Körpers platzieren (und befolgen Sie die Best Practices für das Rendern einer Seite). Dies hilft auch bei SEO ganz leicht. Einfach Ihre Skripte auf der Unterseite des Körpers hinzufügen und
data-turbolinks-eval="false"
zu Ihrem Skript-Tag hinzuzufügen. Dies verhindert, dass Turbolinks nach die anfängliche Seitenlast auswerten. Hier ist, wie es mit dem javascript_include_tag
getan wird:
<%= javascript_include_tag 'application', 'data-turbolinks-eval' => 'false'%>
Dann einfach
$(document).on('turbolinks:load', function() { // code to be executed when use changes pages });
verwenden
- 1. rails 4 turbolinks multiple bindings
- 2. DIV An der Unterseite des Viewports angehängt
- 3. Schienen 4 + Turbolinks + JQuery Turbolinks + Coffeescript: Ereignisse, die mehrere Male gefeuert werden
- 4. Display-Seitenlänge an der Unterseite des Tisches
- 5. CSS: kleben Sie einen Link an der Unterseite des div
- 6. Schienen-Turbolinks beeinflussen mein Inhaltslayout
- 7. Anfügen Element an der Oberseite des Körpers in jQuery
- 8. Wie UILable im Inneren des Körpers der E-Mail hinzufügen
- 9. Höhe und Breite des Körpers oder Fensters der Webseite erhalten
- 10. Footer an der Unterseite platzieren
- 11. Rails 4 Turbolinks machen Formular reichen mehrmals
- 12. Erzeugungs pdf hängt an Schienen 4 mit PDFKit gem
- 13. Schienen Turbolinks lange Anfrage zeigt keine Seitenladung
- 14. Prism.js arbeitet nicht mit Rails 4 Turbolinks
- 15. Warum funktioniert Turbolinks nicht richtig? Schienen App
- 16. Was sind Turbolinks in Schienen 5,0?
- 17. nProgress-Schienen mit turbolinks arbeiten nicht in Schienen 4.2.6
- 18. Zusätzlichen Platz an der Unterseite von GridView oder ListView hinzufügen
- 19. Facebook kommentieren w/Rails 4 und Turbolinks
- 20. Fußzeile nicht an der Unterseite der Seite
- 21. Screeps: Baukosten des Körpers berechnen
- 22. Android vertikale Tabs Menü an der Unterseite
- 23. Schienen 4 - entweder oder wenn Aussage
- 24. Schienen 4 statische Vermögenswerte in der Öffentlichkeit/oder App/Assets/
- 25. Schienen 4 - Wie installiere ich "jquery-ui"?
- 26. Schienen 4 - Name des aktuellen Layouts?
- 27. Einfache Form - Schienen 4 - Bearbeitung
- 28. css - Transparente Bildlaufleiste während Bild im Hintergrund des Körpers
- 29. iScroll lite finde, wenn ich das Ende des Scrolls oder der Unterseite des Elements erreicht habe
- 30. Schienen 5 - Turbolinks 5, einige JS nicht geladen auf Seite render
Dank, das ist gut genug für mich :) – stephenmurdoch
es die Datei speichert, aber es müssen noch warten für die js zu laden (wenn die ganze seite geladen ist), nicht wahr? Würde ein "Async" -Attribut nicht die Vorteile bieten, die es bietet, ohne von Turbolinks neu geladen zu werden? – michelpm
Mit den Rails-basierten Ressourcen auf der normalen Schiene haben Sie eine komprimierte, minimierte js, die normalerweise im Cache des Browsers gespeichert wird. Ladezeit (wie in "Lade den Code") ist sowieso ein Bruchteil der gesamten Download + Wartezeit + Ladezeit für js. In jedem Fall lädt TL einfach die ganze Seite im Hintergrund, nimmt dann die Elemente (Titel, Körper usw.) und tauscht sie in Ihre Seite statt der aktuellen. Es ist ein einfaches Verhalten, das zu höherer Geschwindigkeit führen kann oder auch nicht. In realen Beispielen fand ich Kettenräder Javascript in Kopf mehr als genug kompiliert. – rewritten