2016-12-07 89 views
0

您好我正在我現有的基於Angular 1的UI項目中開發一個窗口小部件模塊。這個小部件應該包含實時信息。NodeJs在服務器端渲染HTML模板+邏輯

根據我的設計,我想發送HTML視圖給客戶端從節點服務器(可能使用表達js)當第一個請求時。但由於數據需要實時,所以我無法每分鐘發送完整的html(每次都會重複傳輸模板)。

所以有可能我發送一個模板給客戶端以及一組java腳本函數,以便當客戶端想要刷新數據時,他只會調用發送的javascript函數,並且在內部我的javascript函數將休息一下,從服務器獲取json響應,然後重新填充最初發送的html。

這樣我打算在服務器端進行初始渲染,然後在客戶端使用服務器提供的邏輯進行渲染。這裏客戶端不會意識到它正在渲染哪個小部件以及它具有哪些功能。所有這些將由服務器發送的js控制。

請讓我知道如何實現這一點,因爲我發現ejs沒有達到這個目的。使用ejs,我只需要將所有邏輯都設置爲服務器端。而我計劃在運行時將邏輯從服務器傳輸到客戶端。

此外,如果我的設計有一些嚴重的問題,建議一些其他的選擇。謝謝

回答

0

Angular1不是server side rendering友好,因爲它需要瀏覽器的DOM。任何模板引擎的使用都不會幫助它們,因爲它們生成的html沒有被角度應用程序拾起。

使用phantomjs無頭瀏覽器實例通過運行ur angular1應用程序代碼生成html,然後在加載腳本時角將在客戶端運行。

我建議切換到Angular2React,因爲它們是server side rendering友好