2010-11-25 65 views
4

我目前正在使用大量JavaScript代碼處理應用程序。我在每個頁面/部分上編寫內聯JavaScript代碼,但大部分代碼都在其他地方重新使用。我試圖找出一種方法來將這些小腳本重構成更方便和可維護的東西。我使用jQuery,所以我沒有使用任何內置的JS生成器。Rails 3的Javascript組織策略

到目前爲止,我已經想到了以下內容:

  • 就移動到一切application.js並從新UJS風格幫手拿好處。這隻比現在好一點,因爲我最終會得到一個笨重的JS文件。

  • 使用js_erb gem它提供了一種將JavaScript源代碼寫入app/javascripts並自動獲取i18n,HTML模板和編譯的方法。

  • 使用sprockets-rails這似乎也是一個很好的選擇,即使我從來沒有嘗試過,我不確定它是否與rails3兼容。

您對此類主題有任何經驗/建議嗎?

回答

0

我個人將JavaScript代碼分組爲合理的文件,然後將它們包含在需要它的頁面中。例如,如果您有一些在大多數頁面上調用的代碼,那麼我會將它包含在application.js中。但是,如果我的代碼僅包含在我的用戶控制器頁面上,那麼我將創建一個user.js文件並僅將其包含在這些頁面上。通過這樣做,代碼的組織方式便於我維護。這可能會有一些性能折衷,但在我的情況下,可維護性更重要。

0

I組JS代碼的文件,單獨從諧音

  1. 局部模板可以緩存和JS的更新將不需要HTML緩存刪除
  2. 更好的代碼的組織,作爲功能變得複雜,它會更容易管理和優化
  3. 隨着時間的推移JS會增大,並且可以使用CDN提供您的JS,這是頁面加載時間一個偉大的業績助推器
1

Sprockets 2.0目前正處於非常活躍的開發階段,並將作爲ActionPack的一部分與Rails 3.1一起發佈。最簡單的事情是等待Rails 3.1或升級到最新的Rails 3.1.0。RC4由它指向你的Gemfile喜歡:

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

,做

bundle install 

在此期間,得到了頭,現在它是如何工作的開始:

+0

+1同意這一點,但如果這是一款產品應用,我可能會避免早期升級,除非您有風險承擔 - 這是一個候選版本的理由:) – 2011-07-08 07:07:15