Я привык придерживаться своего JS в нижней части моего элемента body (как в HTML5Boilerplate), но поскольку TurboLinks, который будет по умолчанию в Rails 4, перезагружает тело (и заголовок) по каждому запросу, было бы целесообразно поставить мой JS в голову с этого момента? Есть ли какие-нибудь достойные руководства или лучшие практики по этому поводу?
Rails 4 + Turbolinks: JS в голове или внизу тела?
Ответ 1
Также предварительно скомпилированные application.js(по конвейеру активов) включены и по умолчанию по умолчанию. Логика состоит в том, что даже если js загружается до остальной части страницы, так как js всегда один и тот же, он будет загружен из кеша из второго запроса вперед, поэтому нет реальной причины служить ему в нижней части тело больше.
Ответ 2
Если вы используете Turbolinks 5, теперь вы можете разместить turbolinks в нижней части вашего тела (и следить за лучшими практиками веб-разработчиков для рендеринга страницы). Это также помогает SEO всегда так немного. Просто добавьте свои скрипты в нижнюю часть вашего тела и добавьте
data-turbolinks-eval="false"
в тэг script. Это предотвратит оценку турбонасосов после начальной загрузки страницы. Здесь, как это делается с помощью javascript_include_tag
:
<%= javascript_include_tag 'application', 'data-turbolinks-eval' => 'false'%>
Затем просто используйте
$(document).on('turbolinks:load', function() {
// code to be executed when use changes pages
});