繁体   English   中英

Rails 3的Javascript组织策略

[英]Javascript organization strategies for Rails 3

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

到目前为止,我已经想到了以下内容:

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

  • 使用js_erb gem ,它提供了一种将javascript源代码写入app/javascripts并自动获取i18n,HTML模板和编译的方法。

  • 使用sprockets-rails也是一个不错的选择,即使我从未尝试过,我也不确定它是否兼容rails3。

你对这个话题有什么经验/建议吗?

Sprockets 2.0目前正处于非常活跃的开发阶段,并将随Rails 3.1一起提供,作为ActionPack的一部分。 最简单的方法是等待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

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

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

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

  1. 部分可以缓存,JS更新不需要删除html缓存
  2. 更好的代码组织,随着功能变得复杂,管理和优化将更容易
  3. 随着时间的推移,JS的规模会越来越大,您可以使用CDN来提供JS,这对于页面加载时间来说是一个很好的性能提升器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM