Rails中的每个视图的JavaScript文件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

根据'unobtrusive JavaScript'的建议,我想将我的JavaScript逻辑分成 单独的文件。但是我不知道如何组织它们。

我是不是该:

  1. 只需将所有应用程序JavaScript放入Application.js文件并使用布局页面加载它?这是简单的方法,但我最终会得到一个臃肿的Application.js。有些用户可能只想访问几页,但整个文件都会预加载,这是不好的。
  2. 或者我应该为每个视图创建一个单独的javaScript文件并独立加载它们?这会产生一系列问题。如何将每个js文件链接到相应的视图? 谢谢。
提问于
用户回答回答于

每次加载application.js中的主JavaScript。现在根据不同需求创建文件。创建一个form.js文件,一个myfancypart.js文件等。不要将它们加载到application.html.erb布局中。在需要时动态加载它们:

application.html.erb:

<%= javascript_include_tag "application" %>
<%= yield :javascript_includes %>

view.html.erb的顶部:

<% content_for :javascript_includes do %>
  <%= javascript_include_tag "forms.js" %>
<% end %>

content_for块中的所有内容都将以yield:javascript_includes加载。

用户回答回答于

我建议将它全部放入一个文件,然后您可以缩小和gzip。客户端只需下载一次,因为它会在所有后续请求中缓存。

另一件您可能会感兴趣的事情是链轮,一个JavaScript依赖管理器,您可以使用gem进行安装。您可以从网站(http://getsprockets.org/)或github页面(http://wiki.github.com/sstephenson/sprockets)获取更多关于链轮的信息。这使得编写大型JavaScript应用程序变得更易于管理。

扫码关注云+社区