Язык шаблонов для рендеринга на стороне клиента и на стороне сервера - PullRequest
24 голосов
/ 31 марта 2011

Я исследую шаблоны JavaScript как способ визуализации наших представлений. Цель состоит в том, чтобы иметь возможность визуализировать клиентскую часть для пользователей, у которых включен JavaScript, чтобы отображать ту же сторону шаблонов / сервера данных для тех пользователей (и сканеров), которые этого не делают.

Требования

  1. Рендеринг на стороне клиента.
  2. Рендеринг на стороне сервера (поддержка JVM хороша).
  3. Разумная поддержка циклов, условных выражений, обработки текста, частичных операций, макросов и расширений / плагинов.
  4. Достаточно большое / активное сообщество пользователей.

Найдены неудовлетворительные решения

  1. Усы : поддерживает рендеринг на стороне сервера и клиента, большое / активное сообщество, но шаблоны без логики кажутся очень ограничительными и болезненными.
  2. Node.js плюс подчеркивание : JS-шаблоны, такие как подчеркивание, обеспечивают всю необходимую мне гибкость шаблона, но их рендеринг на стороне сервера с использованием Node.js ОЧЕНЬ хрупок. node.js является новым и довольно нестабильным, и его управление пакетами (экспорт ...) требует множества хаков для правильной работы.
  3. Шаблоны Google Closure : они компилируются в JS и Java и имеют много функций, которые мне нужны. К сожалению, просматривая группы Google, кажется, что многие базовые функции отсутствуют (например, возможность перебирать ассоциативные массивы ), а документация для создания собственных плагинов очень скудна и больно смотреть. Более того, я не могу сказать, кто в онлайн-сообществе использует его, Google не принимает за него материалы с открытым исходным кодом, и у них нет пропускной способности для выпуска новых функций.
  4. изотоп : писать шаблоны в JS и использовать Johnson , оболочку Ruby для среды выполнения Mozilla SpiderMonkey JS, для визуализации этих шаблонов на стороне сервера. Кажется многообещающим, но проект не принимал коммиты более 6 месяцев.
  5. Liquid с Liquid.js : язык шаблонов Liquid выглядит превосходно, но проект liquid.js кажется непроверенным (в IE не тестируется!), Не имеет документации, неясно, использует ли он кто-либо, и он не обновлялся некоторое время.

Ответы [ 3 ]

3 голосов
/ 31 марта 2011

Использование EJS . В нем почти все функции, которые вы просите.

Он может быть использован с express.js из коробки и прекрасно работает на клиенте.

В качестве бонуса я бы использовал backbone.js для выполнения MVC на клиенте и сервере.

Конечно, это зависит от node.js. Я чувствую, что с помощью Express, Now & Backbone позволяет вам много стабильного контроля с node.js. Не говоря уже о том, что SSJS просто великолепен, а повторное использование кода - просто фантастика.

1 голос
/ 18 октября 2013

Мы закончили тем, что выбрали dust.js . Проверьте Оставление JSP в пыли и Сброс шаблонов на стороне клиента для получения дополнительной информации.

0 голосов
/ 31 марта 2011

Я бы выбрал XSLT (http://www.w3schools.com/xsl/xsl_client.asp)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...