Информация об изменениях

Сообщение Re[8]: Связи в разметке (на примере HTML) от 08.12.2024 18:57

Изменено 08.12.2024 19:01 Alekzander

Re[8]: Связи в разметке (на примере HTML)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Можно примеров? Чтоб элемент действительно был единственным по замыслу, и замысел впоследствии не изменился, однако потребность в создании дополнительных экземпляров таки возникла.


Например, закольцовывание в слайдере, когда из загруженных в него элементов невидимым остаётся один. Как в детской "садюжке": слева пол-Пети и справа пол-Пети

Ты скажешь: "рендеринг", а я скажу: элементы с видео и с анимациями. Ссылку не дам по соображениям приватности, но пример из жизни.

А так, хорошие примеры, как ни парадоксально, именно мне привести трудно: зная, во что это может вылиться, я принимаю превентивные меры, и спотыкаюсь о такие примеры крайне редко.

ЕМ>Я критиковал не саму идею использования шаблонов, а прежде всего утверждение, что присвоение id любому элементу якобы автоматически делает из него синглон (как концепцию).


Я же, вроде, обосновал?

Вот простой тип по имени template.out-link:

<template class="out-link">
    <a href="{url}" target="_blank" class="text-nowrap out-link {classes}" data-{name}="{value}">
        {text}
        <svg width="16" height="16" class="inline">
            <use href="#bi-box-arrow-up-right"></use>
        </svg>
    </a>
</template>


Вот синглтонный тип по имени template.the-out-link:

<template class="the-out-link">
    <a id="the-link" href="{url}" target="_blank" class="text-nowrap out-link {classes}" data-{name}="{value}">
        {text}
        <svg width="16" height="16" class="inline">
            <use href="#bi-box-arrow-up-right"></use>
        </svg>
    </a>
</template>


Вот инстанцирование:

<!-- Создаём инстанс простого типа -->
<span data-template="template.out-link" data-template-params='{ "text": "popper.js", "url": "https://popper.js.org/" }'></span>

<!-- Создаём инстанс синглтонного типа -->
<span data-template="template.the-out-link" data-template-params='{ "text": "The Google, The great and terrible", "url": "https://google.com/" }'></span>


Что тебя смущает?

То, что вместо проверки компилятором, кому можно инстанцировать, а кому нельзя (обычно так обеспечивается уникальность инстанса: инстанцировать дают доверенному агенту, который по контракту обязывается чекать уникальность), проверка идёт в коде шаблонизации, который чекает уникальность идентификаторов и кидает исключения?

Или то, что код шаблонизации не включён в браузер и его пишет сам программист?

Или то, что ЛЮБОЙ КУСОК HTML'я может быть типом для шаблонизатора, и ЛЮБОЙ КУСОК HTML'я может быть инстансом, порождённым шаблонизатором? В этом всё дело? Я бы поставил на этот пункт
Re[8]: Связи в разметке (на примере HTML)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Можно примеров? Чтоб элемент действительно был единственным по замыслу, и замысел впоследствии не изменился, однако потребность в создании дополнительных экземпляров таки возникла.


Например, закольцовывание в слайдере, когда из загруженных в него элементов невидимым остаётся один. Как в детской "садюжке": слева пол-Пети и справа пол-Пети

Ты скажешь: "рендеринг", а я скажу: элементы с видео и с анимациями. Ссылку не дам по соображениям приватности, но пример из жизни.

А так, хорошие примеры, как ни парадоксально, именно мне привести трудно: зная, во что это может вылиться, я принимаю превентивные меры, и спотыкаюсь о такие примеры крайне редко.

ЕМ>Я критиковал не саму идею использования шаблонов, а прежде всего утверждение, что присвоение id любому элементу якобы автоматически делает из него синглон (как концепцию).


Я же, вроде, обосновал?

Вот простой тип по имени template.out-link:

<template class="out-link">
    <a href="{url}" target="_blank" class="text-nowrap out-link {classes}" data-{name}="{value}">
        {text}
        <svg width="16" height="16" class="inline">
            <use href="#bi-box-arrow-up-right"></use>
        </svg>
    </a>
</template>


Вот синглтонный тип по имени template.the-out-link:

<template class="the-out-link">
    <a id="the-link" href="{url}" target="_blank" class="text-nowrap out-link {classes}" data-{name}="{value}">
        {text}
        <svg width="16" height="16" class="inline">
            <use href="#bi-box-arrow-up-right"></use>
        </svg>
    </a>
</template>


Вот инстанцирование:

<!-- Создаём инстанс простого типа -->
<span data-template="template.out-link" data-template-params='{ "text": "popper.js", "url": "https://popper.js.org/" }'></span>

<!-- Создаём инстанс синглтонного типа -->
<span data-template="template.the-out-link" data-template-params='{ "text": "The Google, The great and terrible", "url": "https://google.com/" }'></span>


Что тебя смущает?

То, что вместо проверки компилятором, кому можно инстанцировать, а кому нельзя (обычно так обеспечивается уникальность инстанса: инстанцировать дают доверенному агенту, который по контракту обязывается чекать уникальность), проверка идёт в коде шаблонизации, который чекает уникальность идентификаторов и кидает исключения?

Или то, что код шаблонизации не включён в браузер и его пишет сам программист?

Или то, что ЛЮБОЙ КУСОК HTML'я может быть типом для шаблонизатора (или закольцованного слайдера), и ЛЮБОЙ КУСОК HTML'я может быть инстансом, порождённым шаблонизатором (или закольцованным слайдером)? В этом всё дело? Я бы поставил на этот пункт