home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2015/02/18/Mustacheでレイアウト(layout)風味のテンプレート→ギブアップ

日記/2015/02/18/Mustacheでレイアウト(layout)風味のテンプレート→ギブアップ

日記 / 2015 / 02 / 18 / Mustacheでレイアウト(layout)風味のテンプレート→ギブアップ
id: 1353 所有者: msakamoto-sf    作成日: 2015-02-18 00:14:22
カテゴリ: Java 

おんなじようなこと考えてる人は沢山いるっぽい。

ただ、今のところ、どれも最終的に取り込まれたのかどうか、状況がはっきりしない、というか各IssueやPull Requestを追いきれてない。

少なくとも公式のmustache(5)のページにはそれらしき機能がまだ解説されてないので、駄目なのかも。

強いて似たようなことが出来るとすれば、

{{#layout}}
body
{{/layout}}
|

にして、layout()メソッドで枠をレンダリングということになるんだろうけど、layout()の中でもまたmustacheのれんプレートを処理するので・・・ああ、結局、やっぱり、mustacheのコンパイルは二回起こるのか。しかも、body側のmustache処理のスタックの中でさらにmustacheが走るので、ちょっと怖いかも。

ソレくらいなら、bodyをcompileしてrenderして、それが終わってからlayoutをcompileしてrenderして、という風に分割した方が分かりやすいし危なく無さそう。

{{>header}}

...

{{>footer}}

みたいなpartial形式にしても良いのだけれど、partialについてのcompile & renderがどうなるか分からんし、割りとこの形での分割は融通効かないのでやめときたい。

実際の、compile & renderにかかる時間は計測するしか無いが・・・最悪、compileしたのをキャッシュしておきたいところだが、スレッドセーフにrenderしてくれないと、タイミングによっては別リクエストのレスポンス内容が混ざるとか困った状況になりかねない。その部分の確証がもてるまでは、都度compile & renderでも困らないといえば困らない。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2015-02-18 00:27:37
md5:fe3858efb17702561eeb42bfe7b3b4c8
sha1:abbf410e4387261340797d7d5b8f84f6d749b877
コメント
コメントを投稿するにはログインして下さい。