2011-12-29 4 views
1

Я использую рельсы, и у меня много функций javascript, я не хочу помещать их в application.js. Можно ли переместить их в разные js-файлы на основе макетов? так что каждый раз, когда я загружаю, он не будет загружать все из них. существует ли какая-либо другая передовая практика для таких проблем.Лучшая практика добавления функций javascript в rails?

ответ

0

В целом мы следуем по следующему правилу,

  • Если код используется многими видами контроллеров, поставить его в application.js
  • Если код для конкретной точки зрения контроллера, создать файл js для этого контроллера и поместите его в это. Было бы легко определить, соблюдаете ли вы соглашение об именах для файла js. Для контроллера статьи, создать JS как article.js

Говоря с точки зрения производительности, в рельсах 3.1 мы имеем asset pipeline, сжимающий и пакеты JS-файлов. До этого у нас есть много доступных инструментов, которые сжимают и упаковывают js-файлы. Пример asset packager

1

Мне кажется, вы хотите написать свой собственный бутстрафер. Да, это хорошая идея (хотя она не имеет ничего общего с рельсами). Например, используя функцию jQuery $.getScript(), вы можете динамически загружать только те сценарии, которые вам нужны (конечно, для создания этого процесса вам понадобятся дополнительные скрипты).

Хотя есть две школы: одна из которых имеет тенденцию сжимать столько данных, сколько может, в один большой файл (вместе с кешированием браузера это очень хороший способ), а другой с загрузчиками - загрузка только тех сценариев, которые вам действительно нужны.

С другой стороны, если ваши сценарии не такие большие, как (например) jQuery, то это действительно не имеет значения, imho.

Смежные вопросы