2015-11-21 152 views
1

是否有任何noticable性能差異之間:服務器端VS客戶端渲染模板性能?

在服務器端完全呈現模板,只是將IT作爲一個靜態的HTML到客戶端。

VS

使用框架,如AngularJS它通過Ajax調用加載數據在客戶端上呈現模板。

示例用例可以加載100條評論的博客列表。 (我不確定這是否是這個問題的最佳用例)。這可以通過獲取JSON數據然後將其傳遞給控制器​​,然後使用數據綁定呈現視圖來在Angular中完成。對於靜態頁面,這可以在服務器上完全呈現並直接在客戶端上提供。

我考慮下面的事情要考慮性能差異:

  1. 對DOM樹插入新的節點所需的時間。 (在角度的情況下)
  2. 花費時間來應用CSS樣式。
  3. 請添加其他我錯過了的東西。
+0

我想說的兩種方法之間的主要區別是,所有的內容都在服務器端呈現時瀏覽頁面的人可用,但頁面使用AngularJS方法加載VS更快的加載時間需要更長時間,但對於使用Ajax獲取的內容稍等幾秒鐘。角度呈現數據的時間我會說是可以忽略的。一旦數據加載完畢,AngularJS可能會更快,例如獲取新數據,因爲您不必刷新整個頁面等等。應用CSS是在客戶端完成的嗎? – Arg0n

+0

另外,根據有多少用戶在使用您的網站,您可能會通過在客戶端中進行渲染來獲得一些性能,從而減少服務器的負載。當然,用戶使用客戶端方法獲得的性能更依賴於他們擁有的計算機。 – Arg0n

+0

如果您正在爲常規用戶構建常規站點,那麼現代機器通常非常強大,並且渲染100條評論沒有問題。但是,如果您的目標用戶是非典型的,例如,如果您希望目標用戶使用舊機器和舊瀏覽器,則可能需要服務器端渲染以確保良好的性能。 – igor

回答

1

我想說的兩種方法之間的主要區別是:

服務器端渲染) 所有的內容都可以在服務器端渲染時瀏覽的頁面的人,但網頁需要更長的時間來加載

角/客戶端呈現)頁面 更快的初始加載時間,但等待幾秒鐘的內容獲取與阿賈克斯。

角度來呈現數據我說的時間是可以忽略的。一旦數據加載完畢,AngularJS可能會更快,例如得到新的數據,因爲你不必刷新整個頁面等

應用CSS是在客戶端做任何一種方式