服務(wù)端渲染:DOM樹在服務(wù)端生成,然后返回給前端闪幽。
客戶端渲染(SSR):前端去后端取數(shù)據(jù)生成DOM樹。
服務(wù)端渲染的優(yōu)點(diǎn):
1涡匀、盡量不占用前端的資源盯腌,前端這塊耗時(shí)少,速度快渊跋。
2腊嗡、有利于SEO優(yōu)化着倾,因?yàn)樵诤蠖擞型暾膆tml頁面拾酝,所以爬蟲更容易爬取信息。
服務(wù)端渲染的缺點(diǎn):
1卡者、不利于前后端分離蒿囤,開發(fā)的效率降低了。
2崇决、對(duì)html的解析材诽,對(duì)前端來說加快了速度,但是加大了服務(wù)器的壓力恒傻。
客戶端渲染的優(yōu)點(diǎn):
1脸侥、前后端分離,開發(fā)效率高盈厘。
2睁枕、用戶體驗(yàn)更好,我們將網(wǎng)站做成SPA(單頁面應(yīng)用)或者部分內(nèi)容做成SPA沸手,當(dāng)用戶點(diǎn)擊時(shí)外遇,不會(huì)形成頻繁的跳轉(zhuǎn)。
客戶端渲染的缺點(diǎn):
1契吉、前端響應(yīng)速度慢跳仿,特別是首屏,這樣用戶是受不了的捐晶。
2菲语、不利于SEO優(yōu)化妄辩,因?yàn)榕老x不認(rèn)識(shí)SPA,所以它只是記錄了一個(gè)頁面谨究。
服務(wù)端和客戶端渲染的區(qū)別:
1恩袱、二者本質(zhì)的區(qū)別:是誰來完成了html的完整拼接,服務(wù)端渲染是在服務(wù)端生成DOM樹胶哲,客戶端渲染是在客戶端生成DOM樹畔塔。
2、響應(yīng)速度:服務(wù)端渲染會(huì)加快頁面的響應(yīng)速度鸯屿,客戶端渲染頁面的響應(yīng)速度慢澈吨。
3、SEO優(yōu)化:服務(wù)端渲染因?yàn)槭嵌鄠€(gè)頁面寄摆,更有利于爬蟲爬取信息谅辣,客戶端渲染不利于SEO優(yōu)化。
4婶恼、開發(fā)效率:服務(wù)端渲染邏輯分離的不好桑阶,不利于前后端分離,開發(fā)效率低勾邦,客戶端渲染是采用前后端分離的方式開發(fā)蚣录,效率更高,也是大部分業(yè)務(wù)采取的渲染方式眷篇。
直觀的區(qū)分服務(wù)端渲染和客戶端渲染:
源碼里如果能找到前端頁面中的內(nèi)容文字萎河,那就是在服務(wù)端構(gòu)建的DOM,就是服務(wù)端渲染蕉饼,反之是客戶端渲染虐杯。
應(yīng)該使用服務(wù)端渲染還是客戶端渲染:
我們要根據(jù)業(yè)務(wù)場(chǎng)景去選擇渲染的方式。
如果是企業(yè)級(jí)網(wǎng)站昧港,主要功能是頁面展示擎椰,它沒有復(fù)雜的交互,并且需要良好的SEO创肥,那我們應(yīng)該使用服務(wù)端渲染达舒。
如果是后臺(tái)管理頁面,交互性很強(qiáng)瓤的,它不需要考慮到SEO休弃,那我們應(yīng)該使用客戶端渲染。
具體使用哪種渲染方式也不是絕對(duì)的圈膏,現(xiàn)在很多網(wǎng)站使用服務(wù)端渲染和客戶端渲染結(jié)合的方式:首屏使用服務(wù)端渲染塔猾,其他頁面使用客戶端渲染彤避。這樣可以保證首屏的加載速度竟坛,也完成了前后端分離滨攻。