Module Manager 0.1 :: Автоматическое подключение JS-скриптов при необходимости
Наделали кучу полезных JS-скриптов автоматически оформляющих текст, но надоело следить за тем чтобы вручную подключать все необходимые скрипты к каждой странице? К вашим услугам Module Manager 0.1 от inFlowia Lab.! Просто добавьте в него свои пути к своим скриптам и jQ-селекторы, по которым они должны подключаться и он автоматически будет подключать их к каждой странице, на которой найдёт соответствующие селекторы.
Дело в том, что в силу вероятности динамического появления элементов на странице, Module Manager вынужден проверять необходимость подключения ваших скриптов после каждого добавления новых элементов в body. Из за этого в некоторых случаях работа страницы может стать замедленной. Это может произойти если на странице очень часто добавляются новые элементы. Ситуацию усугубит большое количество скриптов, которые вы отдали на управление Modult Manager'у. При каждом изменении DOM, он делает столько JQ-запросов, сколько у него обслуживаемых скриптов. Если их будет слишком много может появиться ощутимая задержка.
Если всё ещё не поняли для чего он
Допустим вы написали свой JS-скрипт sp.js для автоматического оформления и обеспечения функционирования спойлеров. Он обрабатывает каждый элемент страницы, с классом sp. Вы пишете много статей и используете спойлеры не в каждой, а лишь в некоторых. Естественно, вам бы не хотелось добавлять подключение sp.js к каждой странице вашего сайта, если по факту он пригодится от силы на 10-20 страницах из 100.
Самое примитивное решение - подключать sp.js вручную на каждой странице, где есть спойлеры. Подключать, подключать и подключать... Вернее постоянно забывать подключать и подключать его в лучшем случае при вычитке материала, когда вы обнаруживаете, что спойлеры не работают, а в худшем случае через много много лет, когда вы по случайности наткнулись на это.
Module Manager позволяет скинуть ответственность за необходимостью отслеживания таких подключений на его менеджерские плечи. Он будет проверять каждую страницу к которой подключен на предмет наличия элементов с классом sp и подключать sp.js только в случае их обнаружения.
Как пользоваться
- Копируете на свой сайт код Module Manager с GitHub и подключаете к каждой странице, которую он должен обслуживать.
- Копируете и обеспечиваете доступность всех необходимых функций от inFlowia Lab. Список требуемых функций см. в раздел "ТРЕБУЕТ" в начале комментария к коду. Сами функции ищите в репозитории зависимостей.
- Подключаете jQuery если ещё не подключен.
- Вносите список своих JS-скриптов, которые хотите динамически подключать через Module Manager, в массив modules по образцу из комментариев. Там же указываете соответствующие селекторы, по наличию которых будет происходить динамическое подключение этих JS-скриптов.
- Готово! Пишете статьи и больше не паритесь о подключении требуемых скриптов.
О производительности
Как было сказано в предупреждении, этот скрипт может стать причиной проблем с производительностью, так что в конечном итоге, решение об оправданности его использования принимать вам.
Этот сайт, например, использует Module Manager на каждой странице. Список подключаемых им скриптов небольшой (всего 7 скриптов на момент публикации этой версии менеджера). Подавляющее большинство страниц использует динамическое добавление элементов, но оно не слишком интенсивное. Это, например, загрузка панели системных уведомлений при открытии страницы, оборачивание спойлеров в необходимые контейнеры, вывод списка контента в разделах, превращение якорей в ссылки и т.д. По моим наблюдениям, ощутимых лагов, использование этого скрипта не добавляет.
Помогло? :)
Черкани Инфловии пару строк если нашёл здесь помощь. Можешь писать под любым постом в группе VK или по старинке на почту: inFlowia@netc.it :)
inFlowia Lab. не делает добро за деньги, но знать, что её труды кому-то помогают очень классно. Если тебе помогли - не поленись, всего пара слов: "Спасибо! Помогло :)" сделают дни инфловии светлее. ^^
Количество откликнувшихся: 8