服務器端渲染(SSR)
學前準備
- ES6
- Node
- Vue
什么是服務器端渲染
- 前端渲染:html頁面作為靜態(tài)文件存在虐秋,前端請求時后端不對該文件做任何內容上的修改泳唠,直接以資源的方式返回給前端挠他,前端拿到頁面后巡雨,根據(jù)寫在html頁面上的js代碼,對該html的內容進行修改晰房。
- 服務端渲染:前端發(fā)出請求后柠新,后端在將HTML頁面返回給前端之前窍荧,先把HTML頁面中的特定區(qū)域,用數(shù)據(jù)填充好恨憎,再將完整的HTML返回給前端蕊退。在SPA場景下,服務端渲染都是針對第一次get請求憔恳,它會完整的html給瀏覽器瓤荔,瀏覽器直接渲染出首屏,用不著瀏覽器端多一個AJAX請求去獲取數(shù)據(jù)再渲染钥组。
為什么使用服務器端渲染
優(yōu)點:
- 更好的 SEO输硝,因為傳統(tǒng)的搜索引擎只會從 HTML 中抓取數(shù)據(jù),這會導致前端渲染的頁面無法被抓取程梦。
- 更快的內容到達時間(time-to-content)点把,特別是對于緩慢的網(wǎng)絡情況或運行緩慢的設備 。頁面首屏時間大概有80%消耗在網(wǎng)絡上屿附,剩下的時間在后端讀取數(shù)據(jù)以及瀏覽器渲染郎逃,顯然要優(yōu)化后面的20%是比較困難的,優(yōu)化網(wǎng)絡時間是效果最明顯的手段挺份。傳統(tǒng)的Ajax請求是先請求js再由js發(fā)起數(shù)據(jù)請求褒翰,兩項時間再加上瀏覽器渲染時間才是首屏時間。而SSR能將兩個請求合并為一個。
缺點:
- 更多的服務器端負載优训。
- 服務器端和瀏覽器環(huán)境差異帶來的問題错邦,例如document等對象找不到的問題。
如何選擇
建議:如果注重SEO的新聞站點型宙,非強交互的頁面,建議用SSR伦吠;像后臺管理頁面這類強交互的應用妆兑,建議使用前端渲染。