Как мне управлять активами в Rails 3.1? - PullRequest
4 голосов
/ 21 мая 2011

ОК, поэтому я начинаю новый проект с использованием Rails 3.1, и я новичок в CoffeeScript.

В любом случае, мне нравится идея иметь файлы активов, представляющие контроллеры, но что, если я хочу только JSсделать, когда контроллер называется?

Например, у меня есть контроллер с именем Game.В моем файле games.js.coffee я поместил некоторый код, и он вызывается для каждого запроса страницы.Даже страницы, которые не имеют ничего общего с Games.

В Rails 3.0.7, я бы поместил yield(:js) в файл erb приложения и затем вызвал content_for(:js) в моем представлении Games#action,Таким образом, были загружены только те js, которые были необходимы для этого контроллера.

Или я поступаю неправильно?Лучше ли иметь код ALL js, загружаемый и кэшируемый для каждого запроса страницы для повышения производительности?

Спасибо за любые предложения.

Ответы [ 2 ]

5 голосов
/ 21 мая 2011

Лучше ли загружать и кэшировать ВСЕ js-код для каждого запроса страницы, чтобы повысить производительность?

В основном, команда Rails решила, что ответ, как правило, "да". Большинство сайтов работают лучше всего с одним (уменьшенным) JS-файлом, который вы получаете по умолчанию в Rails 3.1. Таким образом, как только пользователь получит доступ к одной странице вашего сайта, все другие страницы будут загружаться быстро, поскольку все JS были кэшированы.

Если ваш сайт имеет огромное количество JS (например, Facebook), то я бы рекомендовал создать свой сайт для асинхронной загрузки редко используемого кода JS, используя такую ​​библиотеку, как RequireJS . В противном случае я бы не стал загружать другой код под разными контроллерами; это много дополнительной работы для незначительной выгоды.

0 голосов
/ 16 июля 2011

Взгляните на этот плагин, я думаю, он решит вашу проблему: https://github.com/snitko/specific_assets

...