Я создаю сайт, который будет состоять из компонентов.Компонент, определенный как определенный набор HTML, CSS и jQuery.Каждая страница сайта будет состоять из множества компонентов.
В соответствии с лучшими практиками, мы размещаем наш блок JavaScript в нижней части страницы.Мы загружаем необходимые файлы .js, и затем я планирую вызвать необходимые функции:
doThisThing();
doThatThing();
Допустим, у меня есть Компонент X. Я хочу вызывать функцию всякий раз, когда этот компонент появляется на отображаемой странице.,С точки зрения jQuery, что было бы идеальным способом справиться с этим?Некоторые параметры:
1) Всегда вызывать функцию независимо от того, находится компонент на странице или нет:
$('.componentX').doYourThing()
Это просто, поскольку у нас может быть только один универсальный блок jQuery.вызовы функций.Но производительность немного падает, когда он ищет в DOM то, чего может и не быть.
2) Присоедините вызов к самому компоненту:
<div id="componentX">my component</div>
<script>$('.componentX').doYourThing()</script>
Это хорошо, так какself содержит разметку и вызовы .js в одном компоненте.Недостатки?
3) Интегрировать нашу компонентную архитектуру с серверной системой, чтобы разрешить создание компонентов в блоке .js.Другими словами, он проверил бы, размещен ли компонент на шаблоне страницы, и, если это так, добавит вызовы функции js, от которых он зависит, в основной блок скрипта.
4) другие опции, которые мне следуетподумайте?
ОБНОВЛЕНИЕ:
Основываясь на ответе Кемпа, я подумал, что мне следует немного уточнить.Все наши функции jQuery будут упакованы в один большой сжатый файл .js, так что с точки зрения попаданий на сервер все одинаково.Меня больше интересует, как лучше всего обрабатывать все отдельные вызовы функций для каждого компонента на странице в контексте отдельных шаблонов страницы.
Например, компонент X может использоваться на 90% всех страниц.Таким образом, вызов функции jquery для остальных 10% страниц не выглядит большой проблемой.
Однако компонент Y может использоваться только на 5% всех страниц.Я, вероятно, не хочу вызывать функцию jquery на каждой странице как 95% времени, это было бы ненужным.
Еще один сценарий, который может еще больше усложнить ситуацию: компонент Z может быть использован один разна 100% всех страниц, но дважды на 5% страниц.