前端渲染和后端渲染區(qū)別

NetWorkVvv

后端渲染(SSR、服務端渲染)

后端渲染HTML的情況下,瀏覽器會直接接收到經(jīng)過服務器計算之后的呈現(xiàn)給用戶的最終的HTML字符串,這里的計算就是服務器經(jīng)過解析存放在服務器端的模板文件來完成的,在這種情況下,瀏覽器只進行了HTML的解析,以及通過操作系統(tǒng)提供的操縱顯示器顯示內(nèi)容的系統(tǒng)調(diào)用在顯示器上把HTML所代表的圖像顯示給用戶

看圖:在瀏覽器中輸入URL地址然后向服務器發(fā)送請求,服務器端通過URL映射一些技術處理,最終只傳遞給瀏覽器數(shù)據(jù)只有HTML+CSS。而給的HTML+CSS是已經(jīng)在后端渲染好的網(wǎng)頁,瀏覽器只需要去解析HTML+CSS就能把網(wǎng)頁展示出來,稱為服務端渲染或者后端渲染。打開一個網(wǎng)頁就要在服務器端渲染一次,不容置疑增加服務器的壓力


前端渲染(SPA、單頁面應用)

前端渲染就是指瀏覽器會從后端得到一些信息,這些信息或許是Angular.js的模板文件,亦或是JSON等各種數(shù)據(jù)交換格式所包裝的數(shù)據(jù),甚至是直接的合法的HTML字符串。這些形式都不重要,重要的是,將這些信息組織排列形成最終可讀的HTML字符串是由瀏覽器來完成的,在形成了HTML字符串之后,再進行顯示

我認為模板這個詞語并不能用來區(qū)分這些技術的本質(zhì),模板只是一種提供給程序來解析的一種語法,換句話說,模板是用于從數(shù)據(jù)(變量)到實際的視覺表現(xiàn)(HTML代碼)這項工作的一種實現(xiàn)手段,而這種手段不論在前端還是后端都有應用

以下為本人自己的想法:瀏覽器URL請求向靜態(tài)服務器請求全部的HTML+CSS+JS(webpack打包到了一起)代碼,然后瀏覽器解析JS代碼時,JS會通過(例如:Ajax)向服務器發(fā)送數(shù)據(jù)請求,服務器端發(fā)送數(shù)據(jù)給瀏覽器,然后通過JS渲染數(shù)據(jù)。

擴展:前端路由有一個映射表,通過映射表生成URL把從靜態(tài)資源服務器請求過來的一套HTML+CSS+JS代碼抽離出來,然后完成對應的渲染


SSR? SPA 是什么?

SPA

SPA,即Single Page Application,按照字面意思就是單頁富面應用,通俗點就是整個網(wǎng)站由一個html頁面構成。三大框架Angular Vue React都是SPA

SPA的優(yōu)點

\bullet 頁面響應速度快

\bullet 減輕服務器壓力

SPA的缺點

\bullet 不利于SEO(Search Engine Optimization)搜索引擎優(yōu)化

\bullet 首屏打開速度很慢,因為用戶首次加載需要先下載SPA框架及應用程序的代碼,然后再渲染頁面。

SSR

SSR(Server-Side Rendering)服務端渲染

簡單理解是將組件或頁面通過服務器生成html字符串,再發(fā)送到瀏覽器,最后將靜態(tài)標記"混合"為客戶端上完全? ? 交互的應用程序

SSR常用框架

\bullet React 的 Next

\bullet Vue.js 的 Nuxt

詳細了解Next、Nuxt看文章http://www.itdecent.cn/p/a8be5c57966a

既然說到SSR就,說一下它的優(yōu)缺點

優(yōu)點:

1. 更快的響應速度

2. 容易被爬蟲爬到頁面數(shù)據(jù)

缺點:

1. 增加服務器壓力

2. 開發(fā)難度增大

3. 可能會由于某些因素導致服務器端渲染的結(jié)果

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容