10

テンプレートを一度定義して、それらを使用してサーバー側とクライアント側の両方から html をレンダリングできるようにしたいと考えています。(DRYの原則とそのすべて)

私が思い描いている API は単純に次のとおりです: render(JSON, template) --> html.

私はJavaフレームワークを使用しています(実際にはPlayフレームワークですが、これはフレームワーク固有ではないと思います)。

同様の質問をたくさん読んだことがありますが、最新で最も役立つのは、クライアント側とサーバー側の両方のレンダリングのためのテンプレート言語です

私は、Mustache や Google Closure Templates のような明白な候補がそれをカットするつもりはないという著者にほぼ同意します。(理由についてはその投稿を参照してください)

要件:

  • MUST: クライアント側のレンダリング
  • MUST: テンプレートファイルのクライアント側キャッシュ
  • NICE: クライアント側の「一度コンパイルしたら何度も実行」するテンプレート ファイルから高速な JavaScript コードへ
  • MUST: サーバー側のレンダリング
  • 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にデータを送信する)
  • 今はclient-lib(またはノードを使用してクライアント側とサーバー側の両方でjavascriptで実行されるより良いもの)だけが必要なので、もっと自由に選択できます。Mustacheに慣れてきたので、Hoganパーサーを選択しました(Twitterの人たちによる)(http://twitter.github.com/hogan.js/

100%DRY(クライアント側のミックスインとi18Nバンドルも同じソースから取得されます。さらに、Hoganはテンプレートをサーバー側でプリコンパイルし、クライアントへの接続を開くことができるため、クライアントはテンプレートを解析する必要がありません。最初に接続します。

速いですか?ライトニング...

于 2011-08-05T17:39:03.900 に答える