前后端分離的意思是:前后端分離并非僅僅只是一種開發(fā)模式,而是一種架構(gòu)模式,前后端分離已成為互聯(lián)網(wǎng)項目開發(fā)的業(yè)界標(biāo)準(zhǔn)使用方式,通過【nginx+tomcat】的方式,也可以中間加一個nodejs,有效的進(jìn)行解耦。
龍安網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),龍安網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為龍安近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的龍安做網(wǎng)站的公司定做!
【相關(guān)學(xué)習(xí)推薦:前端視頻教程】
前后端分離的意思是:
一.前后端混合的開發(fā)模式(SSR)
1.SSR的優(yōu)勢
1、更好的 SEO,由于搜索引擎爬蟲抓取工具可以直接查看完全渲染的頁面。
2、更快的內(nèi)容到達(dá)時間 (time-to-content),特別是對于緩慢的網(wǎng)絡(luò)情況或運(yùn)行緩慢的設(shè)備。無需等待所有的 JavaScript 都完成下載并執(zhí)行,才顯示服務(wù)器渲染的標(biāo)記,所以你的用戶將會更快速地看到完整渲染的頁面。通??梢援a(chǎn)生更好的用戶體驗(yàn),并且對于那些「內(nèi)容到達(dá)時間(time-to-content) 與轉(zhuǎn)化率直接相關(guān)」的應(yīng)用程序而言,服務(wù)器端渲染 (SSR) 至關(guān)重要。
3. 流程:
1)客戶端給服務(wù)器發(fā)送請求,服務(wù)器返回頁面的html和數(shù)據(jù)(模板引擎)。
2.SSR的局限
1.服務(wù)端壓力較大
本來是通過客戶端完成渲染,現(xiàn)在統(tǒng)一到服務(wù)端node服務(wù)去做。尤其是高并發(fā)訪問的情況,會大量占用服務(wù)端CPU資源;
2.開發(fā)條件受限
在服務(wù)端渲染中,只會執(zhí)行到componentDidMount之前的生命周期鉤子,因此項目引用的第三方的庫也不可用其它生命周期鉤子,這對引用庫的選擇產(chǎn)生了很大的限制;
3.學(xué)習(xí)成本相對較高
除了對webpack、React要熟悉,還需要掌握node、Koa2等相關(guān)技術(shù)。相對于客戶端渲染,項目構(gòu)建、部署過程更加復(fù)雜。
二.衰弱前端+后端分離(利用ajax)
1.優(yōu)勢
前端不會嵌入任何后臺代碼,前端專注于HTML、CSS、JS的開發(fā),不依賴于后端。自己還能夠模擬Json數(shù)據(jù)來渲染頁面。發(fā)現(xiàn)Bug,也能迅速定位出是誰的問題
2.局限
1)JS存在大量冗余,在業(yè)務(wù)復(fù)雜的情況下,頁面的渲染部分的代碼,非常復(fù)雜;
2)在Json返回的數(shù)據(jù)量比較大的情況下,渲染的十分緩慢,會出現(xiàn)頁面卡頓的情況;
3)SEO( Search Engine Optimization,即搜索引擎優(yōu)化)非常不方便,由于搜索引擎的爬蟲無法爬下JS異步渲染的數(shù)據(jù),導(dǎo)致這樣的頁面,SEO會存在一定的問題;
4)資源消耗嚴(yán)重,在業(yè)務(wù)復(fù)雜的情況下,一個頁面可能要發(fā)起多次HTTP請求才能將頁面渲染完畢。可能有人不服,覺得PC端建立多次HTTP請求也沒啥。那你考慮過移動端么,知道移動端建立一次HTTP請求需要消耗多少資源么?
3.流程
1、打開web,加載基本資源,如CSS,JS等;
2、發(fā)起一個Ajax請求再到服務(wù)端請求數(shù)據(jù),同時展示loading;
3、得到j(luò)son格式的數(shù)據(jù)后再根據(jù)邏輯選擇模板渲染出DOM字符串;
4、將DOM字符串插入頁面中web view渲染出DOM結(jié)構(gòu);
三.組件化開發(fā)前端+后端分離(SPA)
1.優(yōu)勢
1.提升頁面切換體驗(yàn)
2.降低切換時間
3.易于部署&前后端分離
4.但是也帶來一系列性能問題:
2.局限
1.初始加載腳本較大
2.首屏空白時間較長
3.頁面返回時,數(shù)據(jù)被動重新拉取
3.流程
1)瀏覽器請求服務(wù)器端的NodeJS;
2)NodeJS再發(fā)起HTTP去請求JSP;
3)JSP依然原樣API輸出JSON給NodeJS;
4)NodeJS收到JSON后再渲染出HTML頁面;
5)NodeJS直接將HTML頁面flush到瀏覽器;
總結(jié):
從經(jīng)典的JSP+Servlet+JavaBean的MVC時代,到SSM(Spring + SpringMVC + Mybatis)和SSH(Spring + Struts + Hibernate)的Java 框架時代,再到前端框架(KnockoutJS、AngularJS、vueJS、ReactJS)為主的MV*時代,然后是Nodejs引領(lǐng)的全棧時代,技術(shù)和架構(gòu)一直都在進(jìn)步。雖然“基于NodeJS的全棧式開發(fā)”模式很讓人興奮,但是把基于Node的全棧開發(fā)變成一個穩(wěn)定,讓大家都能接受的東西還有很多路要走。創(chuàng)新之路不會止步,無論是前后端分離模式還是其他模式,都是為了更方便得解決需求,但它們都只是一個“中轉(zhuǎn)站”。前端項目與后端項目是兩個項目,放在兩個不同的服務(wù)器,需要獨(dú)立部署,兩個不同的工程,兩個不同的代碼庫,不同的開發(fā)人員。前端只需要關(guān)注頁面的樣式與動態(tài)數(shù)據(jù)的解析及渲染,而后端專注于具體業(yè)務(wù)邏輯。
網(wǎng)頁標(biāo)題:什么是前后端分離
分享路徑:http://www.rwnh.cn/article44/cpcche.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、服務(wù)器托管、企業(yè)建站、搜索引擎優(yōu)化、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)