Include file - пример использования

Привет!
Собственно — это вопрос, и вопрос в следующем. Возникло желание изменить демонстрацию изображений фотосета с «prettyPhoto» на обычные модальные окна от «bootstrap». И вот, в ходе работы по реализации данного функционала, у меня возникло сомнение — не является ли дополнительной нагрузкой (влияющей, в частности, на время загрузки страницы) использование «include file», скажем, в «списке» следующей конструкции:

Конкретный пример
<div class="">
    <ul class="">
        <li class="">
            <a href="#" data-toggle="modal" data-target="#{$oPhoto->getId()}">
                <img src="{$oPhoto->getUrl('x80')}" />
            </a>
        </li>
    </ul>

    {include file="modals/modal.open_img.tpl"}
</div>


Думаю, содержание шаблона «modal.open_img.tpl» и так понятно — это стандартное модальное окно с выводом самого изображения по его «id» .

Ключевая часть шаблона модального окна

<div class="modal" id="{$oPhoto->getId()}">
[...]
    <div class="modal-body">            
        <img src="{$oPhoto->getUrl()}" />
    </div>		    	                                  
[...]
</div>


— как мы понимаем, данный список может содержать различное количество элементов, в зависимости от того, сколько изображений было загружено в сам фотосет. И, соответственно, опциональная задача {include file="modals/modal.open_img.tpl"} отработает каждый из элементов списка при загрузке страницы, содержащей сам этот список. Налицо существенное влияние на время загрузки страницы полученного в результате кода, который теперь будет содержать в себе все модальные окна с изображениями относящимися к определенным элементам списка связанными по «id». Т.е., если количество элементов списка (изображений фотосета) — 30, то соответственно и код всех 30-ти модальных окон со всем содержимым будет подгружаться на странице со списком.

Правильно ли я всё понял? И есть ли какой-то грамотный выход из данной ситуации?

Похожие статьи

  • Скины на основе bootstrap
    так как я тут человек новый(новый в Alto, на livestreet известен как dedmixei), то будьте добры — подскажите несколько вещей. 1 Форк — это ветвление от основного движка или как? в смысле в дальнейшем Alto будет...
  • Установка Alto cms
    Добрый день Решил протестировать Alto cms, все вроде делал по инструкции https://altocms.ru/908.html и кмс вроде даже исправно ставится, но почему-то базовый шаблон отображается на сайте некорректно(прилагаю скриншот)...
  • Новый журнальный шаблон «TREND»
    Привет, уважаемое сообщество AltoCMS! Хочу Вас порадовать появлением на этой CMSки еще одного шаблона с названием TREND. Шаблон отлично (на мой взгляд) зарекомендовал себя на LiveStreet CMS, я очень хотел его...
  • Как вставить блок между топиками?
    Всем привет! Столкнулся с такой проблемой: На странице есть 10 топиков, например. Мне необходимо вставить блок между 4 и 5 топиками. Как мне это сделать? Понятное дело, что необходимо будет править шаблон — это не...

2 комментария

+2
Вообще, любое увеличение когда, разумеется, ведет к увеличению времени его обработки. Это неизбежно.

В данном случае, если волнует, не будет ли файл каждый раз считываться с диска — нет, не будет. Если есть 100 фото и, соответственно, 100 раз встречается директива {include...} с одним именем файла, то прочитан файл будет только один раз.

Другое дело, что на странице, в итоге, будет 100 совершенно одинаковых модальных окон, которые отличаются только ссылкой на изображение — вот это, конечно, уже не есть гуд. Вы ведь не стремитесь к тому, чтобы 100 окон одновременно были на экране, не так ли? Значит, модальное окно надо только один раз включать в шаблон. И писать небольшой скрипт, который по клику на миниатюру будет сначала подставлять нужную ссылку в модальное окно на большое изображение, а потом уже открывать само модальное окно.
0
Вот! Что и требовалось доказать.
Нужно обмозговать. Спасибо!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.