Rails 3的Javascript组织策略

Rails 3的Javascript组织策略,javascript,ruby-on-rails,project-organization,sprockets,Javascript,Ruby On Rails,Project Organization,Sprockets,我目前正在开发一个包含大量javascript代码的应用程序。我在每个页面/部分上编写内联javascript代码,但是大部分代码在其他地方被重用。我正试图找到一种方法,将这些小脚本重构成更方便、更可维护的东西。我使用的是jQuery,所以我没有使用任何内置的JS生成器 到目前为止,我想到了以下几点: 只需将所有内容移动到application.js中,就可以从新的UJS风格的助手中获益。这只比我现在拥有的要好一点,因为我最终会得到一个大而笨重的JS文件 使用它可以将javascript源代码

我目前正在开发一个包含大量javascript代码的应用程序。我在每个页面/部分上编写内联javascript代码,但是大部分代码在其他地方被重用。我正试图找到一种方法,将这些小脚本重构成更方便、更可维护的东西。我使用的是jQuery,所以我没有使用任何内置的JS生成器

到目前为止,我想到了以下几点:

  • 只需将所有内容移动到
    application.js
    中,就可以从新的UJS风格的助手中获益。这只比我现在拥有的要好一点,因为我最终会得到一个大而笨重的JS文件

  • 使用它可以将javascript源代码写入
    app/javascripts
    并自动获取i18n、HTML模板和编译

  • 使用它似乎也是一个很好的选择,即使我从未尝试过,我也不确定它是否兼容rails3


您在这方面有什么经验/建议吗?

我个人将javascript代码分组到有意义的文件中,然后将它们包含在需要的页面上。例如,如果您有一些在大多数页面上调用的代码,那么我会将其包含在application.js中。但是,如果我的代码只包含在我的用户控制器页面上,那么我将创建一个User.js文件并只包含在这些页面上。通过这样做,代码以一种易于维护的方式组织起来。这可能会有一些性能折衷,但在我的例子中,可维护性更为重要。

我将JS代码分组在文件中,与部分代码分开

  • 可以缓存分区,JS更新不需要删除html缓存
  • 更好的代码组织,随着功能变得复杂,管理和优化会更容易
  • 随着时间的推移,JS的规模将不断扩大,您可以使用CDN交付JS,这是页面加载时间的一个很好的性能提升器
  • 目前正在进行非常积极的开发,并将随Rails3.1一起作为ActionPack的一部分发布。最简单的方法是等待Rails 3.1,或者将您的GEM文件指向最新的Rails 3.1.0.rc4,如下所示:

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

    bundle install
    
    同时,现在就开始了解它的工作原理:


    +1同意这一点,但如果这是一款生产应用程序,我可能会避免提前升级,除非你有一款apetite for risk——这是一款候选版本,原因如下:)