2012-01-16 106 views
12

我一直在嘗試學習Node.js幾天,但有一件事我很困惑。Node.js:客戶端模板v/s服務器端模板

客戶端模板解決方案(如JQuery模板)和服務器端解決方案(如Jade for Node.js)有什麼區別?

每個的用途是什麼?他們在哪裏使用?它們可以一起使用嗎?如果有的話,他們兩個人是否有過檢查?

我只是無法得到我的頭。很高興有關於這裏的某個人的事情的概述...

回答

27

客戶端與服務器端模板應該考慮的最重要的事情是,如果禁用了JavaScript,客戶端模板將不起作用客戶出於任何原因。

否則它沒有這麼大的差別。這主要取決於您是要在服務器上還是客戶端上生成標記。

使用客戶端模板的典型原因是,如果您有一個應用程序使用ajax,websockets等從服務器加載更多數據。在這種情況下,您可能想要使用客戶端模板來渲染新加載的數據。

例如:

在應用程序中我寫的,我用的服務器EJS模板來生成基本標記:頭部,身體,頁腳,等等 - 這不會改變的內容。

該應用程序使用socket.io,它向客戶端發送來自服務器的一些事件和數據。爲了顯示這些數據,我使用了Knockoutjs的客戶端模板。

所以在我的情況下,這是一種混合的方法。我這樣做的原因是因爲我在服務器上生成的標記會在頁面加載後立即顯示。來自socket.io的數據也可以在服務器上呈現爲HTML格式,但這需要更多的帶寬來發送,而不是發送簡單的JSON對象等,所以我選擇在客戶端上呈現它們。

很明顯,我可以在整個網站上使用客戶端模板,但是我在客戶端上看到沒有任何好處。這隻會讓我的應用程序的客戶端代碼更加複雜。