Мне было поручено улучшить текущий беспорядок, который является нашей "стратегией" JavaScript; мы интернет-магазин, и мой начальник дал мне время, чтобы сделать это правильно. Он очень заинтересован в сохранении модульности и увеличении возможности повторного использования компонентов.
Наш HTML-код визуализируется с помощью JSP, и у нас есть множество пользовательских тегов, например, информация о продуктах, и веб-дизайнерам не о чем беспокоиться.
Теперь мы хотим сделать подобные вещи с помощью JavaScript. Веб-дизайнеры должны получить набор пользовательских тегов, например, скажем,
<foo:draggable>
... some HTML here ...
</foo:draggable>
, который обернет HTML в <div>
с помощью перетаскивания вверху и кнопки закрытия.
Моя идея состоит в том, чтобы пометить div уникальным именем класса CSS с пространством имен, например foo_draggable
, а затем поместить все мои функции в один файл JS. Затем этот JS-файл определяет, есть ли в DOM элементы с классом CSS foo_draggable
и, если он их найдет, он подключит необходимые обработчики событий.
Однако меня беспокоит проблема масштабирования, и мне интересно, стоит ли запускать множество запросов селектора, когда они довольно часто не будут использоваться.
Первой альтернативой было бы явное инициирование каждого перетаскиваемого элемента, но это означало бы размещение тегов <script>
повсюду. Второй подход заключается в том, чтобы не помещать все функции пользовательского интерфейса в один файл, а просто загружать те, которые мне нужны, но это означало бы намного больше HTTP-запросов и более медленную скорость загрузки страницы.
У кого-нибудь есть опыт с этим?