什么是瀏覽器端渲染(CSR)爸业?
瀏覽器端渲染是后端提供數(shù)據(jù),前端做視圖和交互邏輯河泳。頁(yè)面初始加載的HTML種無(wú)內(nèi)容沃呢,需要下載執(zhí)行JS文件,由瀏覽器動(dòng)態(tài)生成頁(yè)面拆挥,并通過(guò)JS進(jìn)行頁(yè)面交互與狀態(tài)管理薄霜。
什么是服務(wù)端渲染(SSR)某抓?
頁(yè)面內(nèi)容由服務(wù)端渲染生成,并返回HTML給瀏覽器惰瓜,瀏覽器只需解析HTML即可否副。
為什么會(huì)出現(xiàn)SSR?
1.解決SEO
(SEO崎坊,搜索引擎優(yōu)化备禀。簡(jiǎn)單來(lái)說(shuō)就是要讓搜索引擎收錄你的網(wǎng)頁(yè),并讓排名靠前一點(diǎn))
前端項(xiàng)目需要頁(yè)面加載完成后再去拉取數(shù)據(jù)進(jìn)行渲染奈揍,大部分搜索引擎或者爬蟲(chóng)無(wú)法讀取頁(yè)面內(nèi)容曲尸,特別是SPA項(xiàng)目,每個(gè)路由頁(yè)面更是難以讀取男翰。
2.首屏渲染速度
正常情況下要先加載JS另患,再通過(guò)JS取加載數(shù)據(jù)。所以難以避免出現(xiàn)首屏白屏蛾绎。
首屏渲染時(shí)間對(duì)比:
- SSR:請(qǐng)求發(fā)送時(shí)間+服務(wù)端渲染時(shí)間+頁(yè)面返回時(shí)間
- CSR:請(qǐng)求發(fā)送時(shí)間+頁(yè)面返回時(shí)間+JS加載時(shí)間
缺點(diǎn)
- 服務(wù)器性能
如果用戶規(guī)模比較大昆箕,SPA本身是一個(gè)大型的分布式系統(tǒng),充分利用用戶的設(shè)備去運(yùn)行JS租冠,SSR則是把這些工作包攬到自己到服務(wù)器上鹏倘。所以對(duì)需要大量計(jì)算且用戶量巨大對(duì)頁(yè)面,并不適合顽爹。但是SSR特別適合大部分對(duì)內(nèi)容展示頁(yè)面 - 開(kāi)發(fā)難度增大
雖然現(xiàn)在Vue纤泵、React都推出了相應(yīng)都SSR解決方案,但是項(xiàng)目復(fù)雜度增加镜粤。
SSR框架:
vue:Nuxt.js
React: Next.js