当前位置:  开发笔记 > 编程语言 > 正文

Rails中每个视图的JavaScript文件

如何解决《Rails中每个视图的JavaScript文件》经验,为你挑选了3个好方法。

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

我是不是该:

    只需将所有应用程序javascript抛出到Application.js文件中并使用布局页面加载它?这是一个简单的方法,但我最终会得到一个膨胀的Application.js.有些用户可能只想访问几页,但整个文件会预先加载,这是不好的.

    或者我应该为每个视图创建一个单独的javaScript文件并单独加载它们?这会产生一系列问题.如何将每个js文件链接到相应的视图?
    谢谢.

Lennart Koop.. 111

每次在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加载.



1> Lennart Koop..:

每次在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加载.


这适用于开发,但在生产中,您希望尽可能少的HTTP请求.在一个缓存的请求中预先加载所有js可能会带来更好的性能.
rails3修复了用于生产的资产管道问题.
那么,这里选择的答案是否符合这个Rails 3资产管道模型?
@MattSlay请参阅:http://railsapps.github.com/rails-javascript-include-external.html#specific阅读特定于页面的部分,然后再向下阅读有关如何获取js的更多信息只在正确的页面上执行.

2> jonnii..:

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

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



3> Michael Durr..:

这随着Rails 3.1和资产管道的变化而变化!

如您所示,最好使用单独的文件.关于如何引用它们并将它们链接起来的问题与rails 3.1有关,它旨在将它们全部编译成单个文件进行生产.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有