什么是SSR(服務(wù)端渲染)mua?
SSR是Server Side Render的縮寫,簡單來講:服務(wù)端渲染 就是網(wǎng)頁上面呈現(xiàn)的內(nèi)容在服務(wù)器端就已經(jīng)生成好了,當(dāng)用戶瀏覽網(wǎng)頁時,服務(wù)器把這個在服務(wù)端生成好的完整的html結(jié)構(gòu)內(nèi)容響應(yīng)給瀏覽器,而瀏覽器拿到這個完整的html結(jié)構(gòu)內(nèi)容后直接顯示(渲染)在頁面上的過程。
SSR(服務(wù)端渲染)是如何出現(xiàn)的?
其是 SSR服務(wù)端渲染 早就有了,或者是說,在CSR(客戶端渲染) 沒有出現(xiàn)之前,以前的Web網(wǎng)頁都是服務(wù)端渲染,如:JSP,ASP,.NET,SMARTY等等是JAVA、C#、PHP等開發(fā)人員用的服務(wù)器渲染模板,所以之前傳統(tǒng)的web開發(fā)方式基本都是服務(wù)端渲染。
上海聚搜信息技術(shù)有限公司是阿里云的代理商網(wǎng)址:http://gzjcsc123.com/可以直接在網(wǎng)站上聯(lián)系阿里云代理商客服進(jìn)行咨詢服務(wù)器架構(gòu)和配置以及優(yōu)惠價格!騰訊云產(chǎn)品http://tx.4526.cn/(聚搜營銷介紹鏈接:http://www.jusoucn.com/meiyou/)是一家致力于搜索引聚搜營銷及全網(wǎng)營銷,致力于為客戶提供搜索營銷領(lǐng)域的服務(wù),幫助廣告客戶在搜索引聚搜獲取的投資回報,包括搜索引聚搜競價服務(wù)(SEM),搜索引聚搜優(yōu)化服務(wù)(seo)和搜索營銷代運(yùn)營服務(wù),能夠有效為廣告主帶來高效的投放回報,我們的理念一直是:讓搜索營銷營銷具有價值。
聚搜營銷團(tuán)隊于2015年在上海成立,團(tuán)隊核心均來自百度搜索部門和國內(nèi)知名服務(wù)商的成員,有非常豐富的產(chǎn)品和項目優(yōu)化經(jīng)驗,這兩年來,服務(wù)于國內(nèi)很多大中型企業(yè)和很多初創(chuàng)公司,通過我們多年的經(jīng)驗和服務(wù),幫助他們在搜索營銷領(lǐng)域上取得了不斷的成功。
為什么會出現(xiàn)CSR(客戶端渲染)?
由于傳統(tǒng)的SSR(服務(wù)端渲染)開發(fā)方式,在項目不斷壯大、更新和迭代,各種各樣復(fù)雜的業(yè)務(wù)需求和業(yè)務(wù)邏輯全部都由后臺處理,用戶體驗、性能等自然就會下降,而且之前的Web開發(fā)是沒有前端這個說法的,從項目需求分析、整體規(guī)化、數(shù)據(jù)庫架設(shè)、各種邏輯處理、頁面切圖、編寫樣式、業(yè)務(wù)交互、兼容性處理等等,都是后端開發(fā)人員去完成的,再加上用戶體驗要求是越來越高,讓后端開發(fā)為員力不從心。

由于局部刷新技術(shù)ajax的普及,在客戶端可以用js發(fā)起網(wǎng)絡(luò)請求來異步獲取數(shù)據(jù),而且在不刷新整個頁面的情況下動態(tài)生成HTML,并以某種方式將數(shù)據(jù)組織成為頁面或者頁面的某部分,最終呈現(xiàn)出完整用戶界面,這樣的效率更高,性能也更好,可維護(hù)性也大大提高后來慢慢的出現(xiàn)了項目前后端分離,后端只負(fù)責(zé)提供數(shù)據(jù)API接口,前端只負(fù)責(zé)數(shù)據(jù)渲染和交互,前后端各自做自的活。
SSR(服務(wù)端渲染) 與 CSR(客戶端渲染) 的利弊
SSR的優(yōu)勢:
有利于SEO:
不同爬蟲工作原理類似,只會爬取源碼,不會執(zhí)行網(wǎng)站的任何腳本(Google除外,據(jù)說Googlebot可以運(yùn)行javaScript)。使用了React或者其它MVVM框架之后,頁面大多數(shù)DOM元素都是在客戶端根據(jù)js動態(tài)生成,可供爬蟲抓取分析的內(nèi)容大大減少(如圖一)。另外,瀏覽器爬蟲不會等待我們的數(shù)據(jù)完成之后再去抓取我們的頁面數(shù)據(jù)。服務(wù)端渲染返回給客戶端的是已經(jīng)獲取了異步數(shù)據(jù)并執(zhí)行JavaScript腳本的最終HTML,網(wǎng)絡(luò)爬中就可以抓取到完整頁面的信息。
有利于首屏渲染
首屏的渲染是node發(fā)送過來的html字符串,并不依賴于js文件了,這就會使用戶更快的看到頁面的內(nèi)容。尤其是針對大型單頁應(yīng)用,打包后文件體積比較大,普通客戶端渲染加載所有所需文件時間較長,首頁就會有一個很長的白屏等待時間。
SSR的局限:
服務(wù)端壓力較大
本來是通過客戶端完成渲染,現(xiàn)在統(tǒng)一到服務(wù)端node服務(wù)去做。尤其是高并發(fā)訪問的情況,會大量占用服務(wù)端CPU資源;
開發(fā)條件受限
在服務(wù)端渲染中,只會執(zhí)行到componentDidMount之前的生命周期鉤子,因此項目引用的第三方的庫也不可用其它生命周期鉤子,這對引用庫的選擇產(chǎn)生了很大的限制;
學(xué)習(xí)成本相對較高
除了對webpack、React要熟悉,還需要掌握node、Koa2等相關(guān)技術(shù)。相對于客戶端渲染,項目構(gòu)建、部署過程更加復(fù)雜。

CSR的優(yōu)勢:
前后端分離,前端專注于 UI,服務(wù)端專注于邏輯。
可以實現(xiàn)局部刷新,無需每次都請求完整頁面,用戶體驗好。
給服務(wù)器減負(fù),部署簡單。
交互性好,方便實現(xiàn)各種效果。
CSR的局限:
不利于SEO,爬蟲難以爬取內(nèi)容。
首屏渲染慢,渲染前需要加載一堆 js 和 css 文件。
客戶端負(fù)擔(dān)重。
SSR與CSR兩者本質(zhì)上的區(qū)別:
客戶端渲染和服務(wù)器端渲染的最重要的區(qū)別就是究竟是誰來完成html文件的完整拼接,如果是在服務(wù)器端完成的,然后返回給客戶端,就是服務(wù)器端渲染,而如果是前端做了更多的工作完成了html的拼接,則就是客戶端渲染。
SSR(服務(wù)端渲染)的使用場景
個人認(rèn)為,要根據(jù)項目應(yīng)用場景而定,而不是一定要用SSR(服務(wù)端渲染) 或 一定要用CSR(客戶端渲染),就現(xiàn)在目前的前端開發(fā)而言,項目開發(fā)都是用的SPA(單頁應(yīng)用)框架居多,自然也是CSR用得多一點,所以如果項目很在乎在搜索引擎的排名等,可以考慮使用SSR,因為SSR最大的優(yōu)勢在于SEO與首屏加載速度快,當(dāng)企業(yè)更在乎在搜索引擎的排名,使得用戶盡可能看到與多訪問自身網(wǎng)站時,可以考慮使用SSR;根絕業(yè)務(wù)需求來決定首屏加載速度的重要程度。
