我希望能夠定義一次模板,並使用它們從服務器端以及客戶端都呈現html。 (DRY原理和所有這些)使用java編譯器的客戶端模板語言(DRY模板)
我想象的API僅僅是這個:render(JSON,template) - > html。我正在使用一個java框架(實際上玩framwork,但我不認爲這是框架特定的)。
我讀過很多類似的問題,最新的,最有幫助的是:Templating language for both client-side and server-side rendering。
我非常同意作者這樣的明顯競爭者:Mustache和Google Closure Templates不會削減它。 (原因見該職位)
要求:
- 必須:客戶端呈現
- MUST:的模板文件,客戶端緩存
- NICE:客戶端「編譯一次執行模板文件的多次以快速的JavaScript代碼
- 必須:服務器端渲染
- NICE:本地Java實現
我見過一堆帖子提示使用Node.js進行服務器端模板化。雖然這肯定會起作用(下劃線模板,Handlebarsjs,EJS都會工作得很好)我很努力地看到如何溝通/組合/整合Node.js與Java,畢竟它仍然是需要輸出JSON的Java框架
我見過文章提到JVM和node.js之間的一些概念驗證(通過http或使用JNDI)。然而,目前似乎沒有圖書館,更不用說經過戰鬥考驗了。因此,爲了整理,你會建議哪些客戶端模板引擎可以在java中運行(或者可以通過jvm調用一些箍環)?如果這個'箍'碰巧是Node.js,你會建議使用什麼樣的通信/庫?
爲什麼不使用node.js而不是Play?有很多SSJS系統在JVM上運行,如Rhino和ringojs – Raynos
因爲我來自java背景,我正在處理現有的應用程序。我只是想重構演示文稿的一部分。關於ringojs,我已經研究過它,但Node.js似乎比ringojs更好(從我讀過的)。也許我不應該擔心,當替代方法是通過http連接到Node.js,因爲網絡延遲,但這是我試圖找出的一件事情。 –
你確定你需要服務器端渲染嗎?我猜測,在服務器上應用模板之後,除了吐出來的響應之外,您不會對其他任何內容做任何其他處理... 另一方面,您可以在JVM中運行JavaScript模板語言使用JavaScript-2-JVM運行時。在Java端生成JSON代碼,將它傳遞給JS端並收集輸出。我只在.NET上使用JScript.NET進行了動態編譯,但您也應該能夠以類似的方式在Java中使用它。 – miguelv