Кратко
- 14 февраля 2013 года W3C опубликовал первый открытый проект HTML Templates. Он предложил хранить поддеревья DOM в неактивном состоянии и позднее создавать из них экземпляры.
- Документы HTML 2014 года включили
<template>в язык. Содержимое доступно какDocumentFragmentчерезtemplate.content: его можно клонировать, заполнить и вставить в действующий документ.
Представьте вечерний выпуск. Первая карточка сообщает о буре, вторая — о выборах, третья — что редакционный кот снова лёг на клавиатуру. Всем нужны картинка, заголовок, краткий текст и ссылка. На сороковой новости собирать одну и ту же разметку строка за строкой становится сомнительным развлечением. Сайты прятали образец где-то на странице или лепили HTML из текстовых фрагментов. Браузер уже умел отлично разбирать разметку, но не предлагал ясного места, где готовый фрагмент мог бы спокойно дождаться своего часа.
Первый публичный проект W3C от 14 февраля 2013 года выделил такое место. Автор пишет обычный HTML внутри <template>, браузер разбирает его на узлы, а затем хранит полученное дерево неактивным. Скрипт может создать экземпляр позже. Редакция один раз задаёт форму карточки, но сама решает, когда конкретный материал попадёт на страницу.
У этой кладовой неожиданный вход. Проект HTML 5.1, датированный февралем 2014 года, помещает содержимое в DocumentFragment, который возвращает template.content. Фрагмент принадлежит отдельному документу без контекста просмотра. Хранящиеся там скрипты не запускаются, поля не присоединяются к живой форме, сам шаблон ничего не рисует. Исходный текст будто показывает узлы внутри тега; в DOM они ждут в отдельном фрагменте.
Разработчики стандарта объяснили приём на кошках. Образец содержит строку таблицы. Программа клонирует её, вписывает сведения об одной кошке и добавляет строку в таблицу. Для следующей берёт новую копию. Вместо кошек редакция поставит новости: каждой копии достанутся свой заголовок и свой адрес, а исходная строка останется чистой. Даже двадцать девятая карточка не должна случайно унаследовать снимок двадцать восьмой. В этом примере особенно хороша скромность технической идеи: браузер не знает ни кошек, ни политики, ни прогноза погоды. Он умеет держать пустую строку в порядке, пока автор не найдёт для неё жильца.
Рекомендация HTML5 от 28 октября 2014 года закрепила элемент в основном тексте языка. История публикаций W3C показывает путь отдельного документа от проекта 2013 года к записке рабочей группы в марте 2014-го. Идея сменила обложку, став частью обычного HTML.
Действующий стандарт HTML по-прежнему описывает template как объявление фрагментов, которые скрипт может клонировать и вставлять. Он устанавливает правила хранения и копирования содержимого и прямо говорит: сам элемент при отображении ничего не представляет. Для редактора это значит, что браузер заботится о подготовке и сохранении формы, а конкретный материал, его проверка и момент выхода остаются редакционной работой.
Парадоксальная должность: браузер старательно трудится над тем, чего читатель никогда не увидит в исходном виде. Он собирает декорацию и держит её за кулисами. Зато когда новость выходит на сцену, никто уже не спорит, как заново построить стены.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





