Я хотел бы построить свой собственный, но я не уверен, как лучше это сделать. Частичным является шаблон, который является только частью другого большего шаблона и который может быть вставлен в несколько других шаблонов по желанию.
Шаблонирование само по себе довольно простое, только извлечение строк и конкатенация, но клиентские части меня немного озадачили.
Вот несколько методов, о которых я подумал:
1,
Я мог бы написать вспомогательную функцию javascript, которая загружает партиалы через ajax в некоторую форму локального хранилища, и все последующие шаблоны, которым требуется этот конкретный фрагмент, сначала будут заглядывать в локальное хранилище. Я думаю, что этот метод не очень безопасен, потому что локальное хранилище не всегда гарантировано. И если я не смогу сохранить их в локальном хранилище, партиалы вызовут слишком много вызовов ajax.
2, я мог бы поместить их все в теги скрипта внутри моего основного html-файла. Это будет работать достаточно хорошо, особенно с head.js (чтобы включить параллельную загрузку тегов скрипта), но все же - я думаю, что каждый тег скрипта - это отдельный вызов сервера, верно? Это не совсем улучшает ситуацию.
3, я мог бы поместить все шаблоны в один тег сценария (или, я полагаю, html) и вручную отфильтровать через какой-то разделитель ... например: "# template1 (строка blabla template1) # template2 (строка blablabla template2) и положить эти строки в глобалы.
Это приведет к единственному обращению к серверу, а все остальное будет сделано на клиенте.
Предложения? Я посмотрел на существующие движки шаблонов, но не могу точно определить, как они это делают. Код довольно сложный