node做服務端渲染
阿新 • • 發佈:2018-12-10
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. 渲染內容:服務端渲染會把”可視“部分先渲染,然後交給客戶端再作部分渲染。而客戶端渲染,則是從無到有,需要經歷完整的渲染步驟。