Я работаю над веб-приложением с высоким трафиком, которое использует все больше и больше плагинов на основе JavaScript. Улучшение и поддержание производительности внешнего интерфейса на высоком уровне является для меня большой проблемой. Я хочу изменить архитектуру того, как плагины и конкретные конфигурации плагинов включены в страницу.
В настоящее время некоторые плагины объединены в монолитный файл plugins.js
, в то время как другие загружаются как отдельные файлы. Конфигурации выполняются в виде встроенных блоков сценариев внутри файлов шаблона. Я считаю, что управление плагинами выходит из-под контроля, влияя на время загрузки страницы и производительность.
Я подумал о следующем подходе: разделять плагины в отдельных файлах, а затем записывать конфигурации для конкретных страниц (например, назначать обработчики событий или прикреплять теги) также в отдельных файлах. Затем я намереваюсь создать сценарий, возможно основанный на Sprockets , который выполняется во время развертывания и объединяет несколько плагинов с их файлами конфигурации, а затем выводит один файл.
Мой ввод будет:
- plugin1.js
- plugin1.conf.js
- plugin2.js
- plugin2.conf.js
Вывод будет включать все необходимые файлы для конкретной страницы.
- page1.js = plugin1.js + plugin1.conf.js + ...
Я считаю, что это хороший подход, учитывая, что все больше людей редактируют конфигурации и постоянно добавляют больше плагинов.
Конечно, я намерен использовать карту для сопоставления необходимых плагинов с определенными шаблонами, чтобы избежать загрузки большего количества JavaScript, чем необходимо.
Это разумный подход? Видите ли вы какие-либо проблемы с этим?
Кто-нибудь еще решал такую проблему?