2016-08-07 83 views
0

我寫它使用服務器端渲染社交網站,當我決定進行服務器端渲染時,我應該渲染服務器上的所有內容嗎?

例如,用戶收到當用戶創建一個職位的服務器渲染後(HTML),

和HTML追加到DOM 。

-

現在,這裏是問題,

當我選擇呈現在服務器上的一切,

我應該在哪裏呈現「小東西」?

例如,如果我要生成用戶之前將照片上傳照片預覽,

我應該建立在cilent一側的標籤,

然後用JavaScript修改,

或只是請求從服務器預覽使y網站「完全」服務器端渲染?

如果我選擇了前者的解決方案,我的網站將變得難以管理(因爲它像cilent端渲染加上服務器端渲染,這讓我很難管理模板)

我perfer後者的解決方案這樣我就可以在服務器上管理所有的我的模板,

,但是這取決於網絡的速度,一旦用戶離線我不能做任何事情,

我該怎麼辦?

回答

1

那麼,會說你的問題是關於在哪裏渲染「小東西」,會得到一個模糊的答案。這可能看起來像一個無害的問題,但答案將由更復雜的問題來回應!國際海事組織,這是好得多問這個問題,比應用服務器是更好的myopic view的一切。

一般來說,我通過一些約束來查看每個渲染任務所有這些都可以由用戶顯着變化!

- origin of content (is the information coming from the client?) 
- delivering content (network infrastructure) 
- viewing content (client hardware) 

所以,讓我們試着回答一些具體的事情:

例如,如果我要生成用戶之前查看照片預覽上傳照片, 我應該在創建標籤無聲的一面,然後用JavaScript修改它, 或只是從服務器請求預覽使y網站「完全」服務器端渲染?

照片是來自服務器?

:有服務器渲染預覽

沒有:已在客戶端使其

閱讀本Twitter ariticle的第一種觀點的段落後,我得出的結論,他們的內容會在服務器上呈現最佳效果。但進一步閱讀,表明它們是雜交他們的渲染 - 一些客戶端和一些服務器(複雜 - 就像你說的!)。

但是,這個結論作出8 MONTHS他們1億用戶後!因此,請選擇pragmatic並選擇渲染方法,使您能夠以最小的複雜性構建應用程序。

0

幾個月後,我決定用Cilent方堅持Vue.js渲染(我不得不重寫一切,耶),

的原因是:

  1. 更容易管理模板,頁面
  2. 非常適合存儲離線使用的數據(因爲CSR僅獲取數據,而不是整個頁面)。
  3. 分開渲染工作,所以我可以花費更少的錢在我的服務器
  4. 因爲一切都會總是輸出到瀏覽器