2010-11-25 13 views
4

Ich arbeite derzeit an einer Anwendung mit viel JavaScript-Code. Ich schreibe inline JavaScript-Code auf jeder der Seiten/Teiltafeln, aber der Großteil des Codes wird woanders wiederverwendet. Ich versuche, einen Weg zu finden, diese kleinen Skripte in etwas bequemer und wartbarer zu verwandeln. Ich verwende jQuery, also verwende ich keinen der eingebauten JS-Generatoren.Javascript Organisation Strategien für Rails 3

Bisher habe ich aus folgendem dachte:

  • Sie einfach alles in application.js bewegen und nehmen Sie profitieren von den neuen UJS Stil Helfer. Das ist nur ein bisschen besser als das, was ich gerade habe, weil ich am Ende mit einer großen klobigen JS-Datei enden werde.

  • Verwenden Sie js_erb gem, die eine Möglichkeit bietet, Javascript-Quellcode in app/javascripts zu schreiben und i18n, HTML-Vorlagen und Kompilierung automatisch zu erhalten.

  • Verwenden Sie sprockets-rails, die auch eine gute Alternative scheint, auch ich habe es noch nie ausprobiert und ich bin mir nicht sicher, ob es rails3 kompatibel ist.

Haben Sie irgendwelche Erfahrung/Anregung in einem solchen Thema?

Antwort

0

Persönlich gruppiere ich JavaScript-Code in Dateien, die sinnvoll sind und dann auf den Seiten, die es erfordern. Wenn Sie beispielsweise Code haben, der auf den meisten Seiten aufgerufen wird, würde ich ihn in application.js einschließen. Aber wenn ich Code habe, der nur auf meinen User-Controller-Seiten enthalten ist, würde ich eine user.js-Datei erstellen und sie nur auf diesen Seiten einschließen. Dadurch ist der Code so organisiert, dass ich ihn leicht pflegen kann. Es könnte einige Leistungseinbußen für diese geben, aber in meinem Fall ist Wartbarkeit wichtiger.

0

I Gruppe JS-Code in Dateien, getrennt von partials

  1. Partials zwischengespeichert und JS-Updates würde nicht html-Cache Löschen
  2. Bessere Code Organisation, da die Funktionalität wird kompliziert, es wäre einfacher, erfordert
  3. im Laufe der Zeit JS in Größe zu verwalten und optimieren wachsen und Sie können CDN verwenden Ihre JS zu liefern, ist dies eine großartige Leistung Booster für Ladezeiten
1

Sprockets 2.0 ist derzeit sehr aktiv und wird mit Rails 3.1 als Teil von ActionPack ausgeliefert. Am einfachsten ist es, entweder auf Rails 3.1 zu warten oder auf die neuesten Rails 3.1.0 zu aktualisieren.rc4 von Ihrem Gemfile auf das Gerät gerichtet mag:

gem 'rails', :git => 'git://github.com/rails/rails.git', :tag => 'v3.1.0.rc4' 

und in der Zwischenzeit

bundle install 

tun, bekommen den Kopf jetzt beginnen, wie es funktioniert:

+0

+1 Stimmen Sie dem zu, aber ich würde wahrscheinlich ein frühes Upgrade vermeiden, wenn es sich um eine Produktions-App handelt, es sei denn, Sie haben ein Risikoappetit - es ist aus gutem Grund ein Release-Kandidat :) –