4

В настоящее время я работаю над приложением с большим количеством javascript-кода. Я пишу встроенный код javascript на каждой странице/частичном формате, однако большая часть кода повторно используется в другом месте. Я пытаюсь понять способ реорганизации этих маленьких скриптов во что-то более удобное и удобное. Я использую jQuery, поэтому я не использую никаких встроенных генераторов JS.Стратегии Javascript для Rails 3

До сих пор я думал о следующем:

  • Просто переместите все в application.js и извлекать выгоду из новых помощников в стиле UJS. Это немного лучше, чем у меня сейчас, потому что у меня будет большой неуклюжий JS-файл.

  • Используйте js_erb gem, который предоставляет возможность написать исходный код javascript в app/javascripts и получить i18n, HTML-шаблоны и компиляцию автоматически.

  • Используйте sprockets-rails, который также кажется хорошей альтернативой, даже я никогда не пробовал, и я не уверен, совместим ли это с rails3.

У вас есть опыт/предложение в этой теме?

ответ

0

Лично я группирую код javascript в файлы, которые имеют смысл, а затем включают их на требующие его страницы. Например, если у вас есть код, который вызывается на большинстве страниц, я бы включил его в application.js. Но если у меня есть код, который включен только на мои пользовательские контрольные страницы, я бы сделал файл user.js и включил его только на эти страницы. Таким образом, код организован таким образом, который мне легко поддерживать. Для этого могут быть некоторые компромиссы с производительностью, но в моем случае ремонтопригодность важнее.

0

I группа JS код в файлах, отдельно от парциальных

  1. Partials можно кэшировать и обновления JS не требуется удаление кэша HTML
  2. Лучше организации кода, так как функциональность становится сложным, было бы легче для управления и оптимизации
  3. Со временем JS будет расти в размерах, и вы можете использовать CDN для доставки ваших JS, это отличный стимул производительности для времени загрузки страницы
1

Sprockets 2.0 находится под очень активным развитием прямо сейчас и будет поставляться с Rails 3.1 в составе ActionPack. Самое простое дело - либо дождаться Rails 3.1, либо обновиться до новейших Rails 3.1.0.rc4 наведя Gemfile на него, как:

gem 'rails', :git => 'git://github.com/rails/rails.git', :tag => 'v3.1.0.rc4' 

и сделать

bundle install 

В то же время, получить фору теперь, как это работает:

+0

+1 Согласитесь с этим, но я бы, вероятно, избежал раннего обновления, если это производственное приложение, если у вас нет аппетита к риску - это кандидат на выпуск по какой-то причине :) – 2011-07-08 07:07:15

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