我习惯于将我的 JS 粘贴在我的 body 元素的底部(根据 HTML5Boilerplate),但是由于TurboLinks (在 Rails 4 中默认启用)会在每个请求时重新加载正文(和标题),这是否有意义从现在开始把我的JS放在头上?在这方面是否有任何体面的指南或最佳实践?
问问题
4350 次
2 回答
10
如果您使用的是 Turbolinks 5,您现在可以将 turbolinks 放在身体底部(并遵循 web 开发最佳实践来呈现页面)。这也对 SEO 有所帮助。只需将脚本添加到正文底部并添加
data-turbolinks-eval="false"
到您的脚本标签。这将防止 turbolink在初始页面加载后进行评估。以下是它是如何完成的javascript_include_tag
:
<%= javascript_include_tag 'application', 'data-turbolinks-eval' => 'false'%>
然后只需使用
$(document).on('turbolinks:load', function() {
// code to be executed when use changes pages
});
于 2016-09-28T14:18:07.013 回答
7
默认情况下,预编译的 application.js(根据资产管道)也处于打开状态。原因是,即使 js 在页面的其余部分之前加载,由于 js 始终相同,它将从第二个请求开始从缓存中加载,因此没有实际理由在底部提供它身体了。
于 2012-09-28T14:59:04.457 回答