10

我希望能够定义一次模板并使用它们从服务器端和客户端呈现 html。(DRY 原则等等)

我设想的 API 很简单:render(JSON, template) --> html。

我正在使用 java 框架(实际上是 Play 框架,但我认为这不是特定于框架的)。

我读过很多类似的问题,最新的也是最有帮助的是:Templating language for both client-side and server-side rendering

我非常同意作者的观点,明显的竞争者喜欢:Mustache 和 Google Closure Templates 不会削减它。(原因见那个帖子)

要求:

  • 必须:客户端渲染
  • 必须:模板文件的客户端缓存
  • NICE:模板文件的客户端“编译一次执行多次”以快速的 javascript 代码
  • 必须:服务器端渲染
  • NICE:本机 java 实现

我看到一堆帖子建议使用 Node.js 进行服务器端模板。虽然这肯定会起作用(下划线模板、Handlebarsjs、EJS 都可以正常工作)我正在努力了解如何将 Node.js 与 java 通信/组合/集成,毕竟它仍然是需要输出 JSON 的 java 框架

我看过一些帖子提到了 JVM 和 node.js(通过 http 或使用 JNDI)之间的一些概念验证通信。然而,目前似乎没有图书馆,更不用说经过实战测试了。

所以总结一下,你建议什么客户端模板引擎也可以在java中运行(或者有一些箍,可以从jvm调用)?如果那个“圈”恰好是 Node.js,你会建议使用什么通信/库方式?

4

1 回答 1

1

我现在要去 Mustache,并期待 Handlebars.js 的 java 实现。一旦存在,重构路径就不应该那么陡峭。

编辑 - 2012 年 4 月

好的,更新此内容以供将来参考:

  • 我将服务器端模板外包给 Node.js。
  • java 和 node.js 之间的通信使用套接字实现。(请参阅:使用套接字将数据从 node.js 发送到 Java 以了解我的想法)
  • 因为现在我只需要一个客户端库(或者更好的一个在客户端和服务器端使用节点的 JavaScript 运行),我可以更自由地选择。习惯了 Mustache 之后,我选择了 Hogan 解析器(由 Twitter 人员提供)(http://twitter.github.com/hogan.js/

100% DRY(即使是客户端的 mixin 和 i18N-bundles 也来自同一个来源。此外,Hogan 可以在服务器端预编译模板并打开与客户端的连接,因此客户端不必再解析模板首先连接。

快吗?闪电...

于 2011-08-05T17:39:03.900 回答