10

Wir arbeiten an einer ziemlich großen und breiten Anwendung. Die Website wird viele verschiedene Abschnitte mit einigen sehr unterschiedlichen Benutzeroberflächenanforderungen und Verhaltensweisen haben.Was sind die Vor- und Nachteile von Asset-Pipeline/Turbolinks von Rails 4 für eine große Anwendung?

Mit Blick auf die Zukunft trennte Rails 4 die Asset-Pipeline in ein separates Juwel, so dass wir wählen können, ob wir es einfügen möchten oder nicht. Das gleiche könnte mit Turbolinks passieren.

Die Frage, die ich mich in diesen Tagen immer wieder stelle und keine Antwort finden kann, ist: Soll ich diese Bibliotheken in unserem Projekt verwenden oder nicht?

Die Hauptprobleme in meiner Reflexion ist die Tatsache, dass die All-in-One-Datei-Strategie wird wahrscheinlich nicht funktionieren und wir müssen Dateibündel in den verschiedenen Teilen der Anwendung verwenden. Wie werden Turbolinks damit reagieren, weil man davon ausgehen muss, dass alle js/css bereits geladen sind? Überwinden die Vorteile einer solchen Konfiguration die Code-Komplexität, die sowohl von der Pipeline als auch von den Turbolinken ausgeht?

Ich erwarte keine Ja/Nein-Antwort, nur einige Meinungen über die Angelegenheit.

+0

Turbolinks ist schon ein Juwel. https://github.com/rails/turbolinks – emrahbasman

+0

Hm stimmt, aber sie können immer noch entscheiden, es standardmäßig nicht einzuschließen. –

Antwort

11

Beide gelten Werkzeuge, die nicht notwendigerweise gegenseitig aufheben.

Turbolinks: Ermöglicht Ihnen, nur den Hauptteil einer Seite zu laden, so dass es als AJAX-Anfrage funktioniert (ein Beispiel für ein solches Verhalten wäre das, das Facebook hat).

Vorteile:

  • Springt den Browser Aufgabe vollständig eine neue Seite Rendering, wodurch die „leere Seite“ Zeit zu beseitigen, wo der Browser nicht mehr reagiert.
  • Im Zusammenhang mit dem vorherigen: Wenn Sie Verhalten haben, die durch das Laden einer neuen Seite, wie zum Beispiel, ein Lied spielen beeinflusst werden, beeinflussen turbolinks es nicht (siehe soundcloud weiter).
  • Der Dokumentkopf wird nicht neu geladen, daher werden dieselben Tags/Inhalte nicht zweimal geladen (wenn sie identisch sind).
  • Ermöglicht Ihnen, den Inhalt der Ansicht auf dem Server weiterhin zu cachen.

Nachteile:

  • A Drag wenn Header-Tags wirklich brauchen (neu js Dateien, neue CSS-Dateien, Metatags Update ...) aktualisiert werden
  • Wenn Sie clientseitige verwenden möchten view rendering, es ist einfach nicht das Werkzeug dafür.
  • Das Standard-Verhalten, um das Verhalten zu deaktivieren, ist nur schmerzhaft (mit CSS-Klassen deaktivieren Anchor-Tags in einem Abschnitt? Das ist nur saugt).

Es ist eigentlich eine Frage, was die Architektur Ihrer App ist, was sie anvisiert.

Über Asset-Pipelining, habe ich gemischte Ergebnisse damit, obwohl ich sagen würde, dass es mehr Vorteile als Nachteile hat. Insgesamt verbessern Vorverarbeitungstools die browserübergreifende Entwicklungsproduktivität, verlassen sich jedoch nicht darauf in der Produktion. Aber im Fall von Asset-Pipelining muss es mit dem, was Sie wollen, gut sein. Sie können SASS, Coffeescript vorverarbeiten, Sie haben große Bibliotheken wie Kompass oder Bourbon, aber dies kann auch Ihren Leistungsaufwand erhöhen. Also, Benchmarks und sehen, ob diese Tools für Sie sein sollten.

2

Lassen Sie uns mit einem Beitrag über die Nachteile beginnen: http://eviltrout.com/2013/01/06/turbolinks-and-the-prague-effect.html

Wenn dies für Sie kein Problem: http://geekmonkey.org/2012/09/introducing-turbolinks-for-rails-4-0/

Dinge Zum Abschluss: Turbolinks deutlich Ihre Seite zu laden, verbessern, wenn Ihr Seiten teilen JavaScript und CSS Styling. PJAX ist praktisch, wenn die serverseitige Leistung ein Problem darstellt.

  • this helps :)
+0

Der Blog Post über die Nachteile ist wirklich klar auf die Gründe, nicht Turbolinks zu verwenden (und ich denke, ich bin definitiv in es) so ja es half :) –

Verwandte Themen