Клиентский язык шаблонов также с Java-компилятором (DRY-шаблоны) - PullRequest
10 голосов
/ 26 июля 2011

Я хочу иметь возможность определять шаблоны один раз и использовать их для рендеринга html как со стороны сервера, так и со стороны клиента.(СУХОЙ принцип и все такое)

API, который я представляю, просто так: render (JSON, template) -> html.

Я использую Java-фреймворк (на самом деле играю фреймворк, но я не думаю, что это специфично для фреймворка).

Я прочитал много похожих вопросов, последний и самый полезный из которых: Язык шаблонов как для рендеринга на стороне клиента, так и на стороне сервера .

Я в значительной степени согласен с автором, что такие очевидные соперники, как: усы и шаблоны Google Closure, не собираются его сокращать.(причины см. в этом посте)

Требования:

  • ОБЯЗАТЕЛЬНО: клиентское отображение
  • ОБЯЗАТЕЛЬНО: клиентское кэширование файлов-шаблонов
  • NICE: клиентское «многократно выполненное многократное выполнение» файла шаблона для быстрого javascript-кода
  • MUST: рендеринг на стороне сервера
  • NICE: нативная реализация java

Я видел множество постов, предлагающих использовать Node.js для шаблонизации на стороне сервера.Хотя это определенно сработало бы (шаблоны подчеркивания, Handlebarsjs, EJS все работало бы просто отлично) Я изо всех сил пытаюсь понять, как связать / объединить / интегрировать Node.js с java, в конце концов это все еще java framework, который должен выводить JSON

Я видел посты, в которых упоминается некое доказательство концепции взаимодействия между JVM и node.js (через http или с использованием JNDI).Тем не менее, ни одна библиотека, не говоря уже о боевых испытаниях, кажется, в настоящее время недоступна.

Итак, чтобы округлить, какой шаблонизатор на стороне клиента вы бы предложили, чтобы он также работал в java (или с некоторыми обручами, можно было вызвать из jvm)?И если этим «обручем» окажется Node.js, какие способы коммуникации / библиотеки вы бы предложили использовать?

1 Ответ

1 голос
/ 05 августа 2011

Сейчас я собираюсь перейти к Mustache и ожидаю Java-реализацию для Handlebars.js.Как только он существует, путь рефакторинга не должен быть таким крутым.

РЕДАКТИРОВАТЬ - апрель 2012

Хорошо, обновите его для дальнейшего использования:

  • Я аутсорсинг серверных шаблонов для Node.js.
  • связь между java и node.js реализована с использованием сокетов.(см .: Отправка данных из node.js в Java с использованием сокетов , откуда я понял)
  • Поскольку сейчас мне нужен только клиент-lib (или лучше, который работает в javascript накак на стороне клиента, так и на стороне сервера) Я могу выбирать более свободно.Привыкнув к усам, я выбрал парсер Hogan (от ребят из Твиттера) (http://twitter.github.com/hogan.js/)

100% DRY (даже клиентские миксины и i18N-связки)исходят из того же источника. Более того, Hogan может предварительно скомпилировать шаблоны на стороне сервера и открыть соединение с клиентом, чтобы клиенту больше не приходилось анализировать шаблон при первом подключении.

Это быстро? Молния...

...