Rails 4 + Turbolinks: JS в голове или внизу тела? - программирование
Подтвердить что ты не робот

Rails 4 + Turbolinks: JS в голове или внизу тела?

Я привык придерживаться своего JS в нижней части моего элемента body (как в HTML5Boilerplate), но поскольку TurboLinks, который будет по умолчанию в Rails 4, перезагружает тело (и заголовок) по каждому запросу, было бы целесообразно поставить мой JS в голову с этого момента? Есть ли какие-нибудь достойные руководства или лучшие практики по этому поводу?

4b9b3361

Ответ 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 });