Я проводил исследования по этому вопросу:
Используя Rails 3.1, куда вы помещаете свой "специфичный для страницы" код JavaScript?
Но у меня пока нетчтобы увидеть удовлетворительный ответ, который также заставляет меня задаться вопросом, делаю ли я что-то не так.
Вот моя ментальная модель: для разных взглядов у меня будут разные
$(document).ready(....)
блоки, которые, очевидно, ссылаются на элементы, которые очень специфичны для этой страницы.Я не хочу загрязнять вещи, загружая этот код для каждой отдельной страницы и пытаясь выяснить, как выполнять его только на определенных страницах;это кажется довольно уродливым.
Моя интуиция, по общему признанию, не подкрепленная никакими предварительными экспериментами, заключается в том, что идеальным вариантом было бы:
- Загрузка кода приложения из application.js.
- Загрузка кода общего контроллера из чего-то вроде assets / controller_name / shared.js
- Загрузка кода, специфичного для вида, из чего-то вроде assets / controller_name / show.js
С верхней части моей головы.Помощник, при первом запуске, проверит, существует ли файл и, если это так, сделает для него javascript_include.
Возможно, это имеет некоторые проблемы с производительностью по сравнению с "давайте просто завернем все это вбольшой "липкий шар" и "пошли все это", но кажется, что это лучший подход к разделению кода.
Однако, как и выше, я чувствую, что что-то упустил.Является ли $ (document) .ready для каждой страницы плохой идеей?Должно ли это быть в шаблоне и вызывать специфический для страницы бит JS из application.js?Приведенная выше статья приводит к такому выводу, но мне не нравится изображение, которое я получаю в голове из одного огромного $ (документа). Уже изобилующего, если это, если это, если другая вещь.