Javascript包含标签最佳实践在Rails应用程序

假设我需要在ERb模板的<head>中调用一个JavaScript文件。 我的本能就是照常做:

 <head> <%= javascript_include_tag :defaults %> <!-- For example --> </head> 

在我的应用程序的布局。 当然,这些javascript文件会被加载到我的应用程序的每个页面中,而不pipe它们是否被用于查看页面。

所以我想知道的是,如果有一个很好的方式来加载一个JavaScript头,例如,只有在一个特定的目录中find的所有ERb模板。

我会使用content_for 。

例如,指定要在应用程序布局中插入的位置:

 <head> <title>Merry Christmas!</title> <%= yield(:head) -%> </head> 

并从一个视图发送它:

 <%- content_for(:head) do -%> <%= javascript_include_tag :defaults -%> <%- end -%> 

我觉得没有什么错,包括所有年份的默认值,因为他们可以caching在用户的浏览器。

我build议不要在标题中添加JavaScript,因为它会导致页面加载速度变慢。 而是加载页面底部的js,速度更快。 http://developer.yahoo.com/performance/rules.html#js_bottom

 <body> .... <%= yield(:js) -%> </body> 

并从一个视图发送它:

 <%- content_for(:js) do -%> <%= javascript_include_tag :defaults -%> <%- end -%> 

我通常在布局文件中有以下内容:

 <head> <%= javascript_include_tag :defaults %> <!-- For example --> <%= @extra_head_content %> </head> 

然后在意见中:

 <% (@extra_head_content ||= "") += capture do %> <%= other_content %> <% end %> 

请参阅#capture的API文档