一尘不染

Rails中每个视图的JavaScript文件

javascript

按照“不干扰JavaScript”的建议,我想将我的JavaScript逻辑分成
单独的文件。但是我不知道如何组织它们。

我是不是该:

  1. 只需将所有应用程序javascript扔到Application.js文件中,然后将其与布局页面一起加载?这是简单的方法,但最终会导致膨胀的Application.js。某些用户可能只想访问几个页面,但是会预加载整个文件,这不好。
  2. 还是应该为每个视图创建一个单独的javaScript文件并独立加载它们?这产生了一系列问题。如何将每个js文件链接到相应的视图?
    谢谢。

阅读 334

收藏
2020-05-01

共1个答案

一尘不染

每次都将主要JavaScript加载到application.js中。现在创建满足不同需求的文件。创建一个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加载。

2020-05-01