• JavaScript-файл для каждого представления в Rails

    Согласно рекомендациям ненавязчивый JavaScript 'я хочу, чтобы отделить мою логику JavaScript в
    отдельные файлы. Однако я не знаю, как их организовать.

    Я Должен:

    1. Просто бросить все JavaScript-приложения в файл Application.js и загрузить его с макета страницы? Это простой подход, но я в конечном итоге с раздутым Application.js. Некоторые пользователи, возможно, захотите посетить только пару страниц, но весь этот файл будет предустановленными что не есть хорошо.
    2. Или я должен создать отдельный файл JavaScript для каждого смотреть и загружать их самостоятельно? Это создает множество вопросов. Как связать каждого JS-файла в соответствующий вид?

    Спасибо.

  • Ответы

  • Загрузить основные JavaScript в application.js каждый раз, когда. Теперь создаем файлы для различных нужд. Создать файл form.js файл myfancypart.js и др. Не загружать их в приложение.HTML-код.макет еврорадио. Динамически загружать их, когда вы нуждаетесь в них:

    приложения.HTML-код.еврорадио:

    <%= javascript_include_tag "application" %> <%= yield :javascript_includes %> 

    лучшие вашего зрения.HTML-код.еврорадио:

    <% content_for :javascript_includes do %>   <%= javascript_include_tag "forms.js" %> <% end %> 

    Все в content_for блока будут загружены на выход :javascript_includes.

    Я предлагаю поставить это все в один файл, который затем можно уменьшать и GZIP. Клиенту останется только скачать его один раз, как он будет кэшироваться на все последующие запросы.

    Еще одна вещь, которая может вас заинтересовать-это звездочки, JavaScript в зависимости Manager, который можно установить с помощью драгоценных камней. Вы можете получить больше информации о звездочки с сайта (http://getsprockets.org/) или из github страницы (http://wiki.github.com/sstephenson/sprockets). Это делает написание большого приложения на JavaScript гораздо более управляемым.

    Это изменения в Rails 3.1 актив трубопровода!!!

    Отдельных файлов лучше, как вы укажите. Вопросы о том, как ссылаться на них все и связать их уходит с рельсов 3.1 цель которой собрать их все в отдельные файлы для производства.

    Можно использовать Jammit для включения CSS и сценариев JavaScript файлов

    на деталь: http://documentcloud.github.com/jammit/

    Использовать:

    Шаг 1:

    Добавить JS-файлов в активы.yml (см. код ниже)

    сценарии:

    footer:  - app/javascripts/lib/*.js - app/javascripts/jquery-plugins/*.js - app/javascripts/custom/*.js - app/javascripts/application.js 

    Заголовок:

    - app/javascripts/core/*.js - app/javascripts/head/*.js 

    Шаг 2:

    Добавить простой код в макет приложения:

    <%= include_javascripts :header %> <%= include_javascripts :footer %> 

    может быть, вы хотите использовать application_helper

    def javascript(*files)   content_for(:head) { javascript_include_tag(*files) } end  def stylesheet(*files)   content_for(:head) { stylesheet_link_tag(*files) } end