[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Структурирование
Ron
Привет!

Есть один момент. Когда JS уже не так мало? чтобы уместить в один файл. Как в этом случае структурировать код? Получается такая петрушка: почти на каждой странице существует свой набор скриптов. Навешиваются ивенты, инитятся различные библиотеки. Вся беда что они по сути очень похожи, но конфигурации разные. Ну вот тоже самое модальное окошко, на одной странице нужно маленькое, на другой большое. Разница в 2 параметра всего лишь. Ну хорошо, размеры окна можно выдергивать из data-width data-height прямо из тэга, откуда идет вызов. А когда речь, не знаю, о TinyMCE, где может дофига настроек различаться, но суть все-равно одна!

Как в таком случае лучше распределять код? Упихать все похожие по сущности в раздельные файлы? Но тогда на страницу будут пытаться повеситься ивенты с ненайденными селекторами. Насколько это плохо?

Или запихивать инициализации непосредственно в HTML, а подключать только сами библиотеки?

Или пробивать инлайн ивентами, типа onClick=""?

Какой из способов наименее ужасен, желательно с обоснованием? У меня получается каша по причине того что в одной ситуации удобнее одно, в другой - другое. Или это нормально?

chee
1. Глобальные зависимости, обобщи, минифицируй и сгруппируй в конкретных файлах, который будешь подключать в зависимости от необходимости;
2. Можно JS скрипты для текущей страницы подключать вручную, проблем нет, но если он один, то есть по факту у тебя должен быть подключен глобальный файл с зависимостями и локальный с логикой для текущей страницы
3. Прочитай про модульность, AMD, require.js

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Invis1ble
Цитата (Ron @ 30.04.2016 - 01:12)
А когда речь, не знаю, о TinyMCE, где может дофига настроек различаться, но суть все-равно одна!

я обычно в подобных случаях в data-* атрибутах указываю настройки, при инициализации читаю их оттуда (если они автоматом не подхватываются)

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Ron
Всем откликнувшимся +1 в карму.

За require.js отдельное спасибо. Интересная штука, тем более вышел через нее на официальный компановщик/минимайзер: ссылка. Что делает идею еще интереснее.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.