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文档