1. 程式人生 > >node做服務端渲染

node做服務端渲染

1、為什麼使用服務端渲染?

後端提供的介面所返回的資料格式有時候太適合前端直接使用,這些處理雖可以放在前端來進行,但也許資料量一大便會浪費瀏覽器效能。因而現今,增加node端便是一種良好的解決方案。

客戶端渲染路線:

1. 請求一個html

2. 服務端返回一個html  

3. 瀏覽器下載html裡面的js/css檔案

4. 等待js檔案下載完成

5. 等待js載入並初始化完成

 6. js程式碼終於可以執行,由js程式碼向後端請求資料( ajax/fetch )

7. 等待後端資料返回

8. dom( 客戶端 )從無到完整地,把資料渲染為響應頁面

服務端渲染路線:

1. 請求一個html

2. 服務端請求資料( 內網請求快 )

3. 伺服器初始渲染(服務端效能好,較快)

4. 服務端返回已經有正確內容的頁面

5. 客戶端請求js/css檔案

6. 等待js檔案下載完成

7. 等待js載入並初始化完成

 8. react-dom( 客戶端 )把剩下一部分渲染完成( 內容小,渲染快 )

時間耗時比較:

1. 資料請求:由服務端請求資料而不是客戶端請求資料,這是“快”的一個主要原因。服務端在內網進行請求,資料響應速度快。客戶端在不同網路環境進行資料請求,且外網http請求開銷大,導致時間差(主要原因)。

2. 步驟:服務端是先請求資料然後渲染“可視”部分,而客戶端是等待js程式碼下載、載入完成再請求資料、渲染。即:服務端渲染不用等待js程式碼下載完成再請求資料,並會返回一個已經有內容的頁面。

3. 渲染效能:服務端效能比客戶端高,渲染速度快( 猜測,該項資料不詳 )。

4. 渲染內容:服務端渲染會把”可視“部分先渲染,然後交給客戶端再作部分渲染。而客戶端渲染,則是從無到有,需要經歷完整的渲染步驟。