
前后端分離,使得前后端能夠各司其職,后端更注重于服務(wù)的提供,而前端更注重服務(wù)的使用,前端通過JS可以做非常多的數(shù)據(jù)處理工作,所以一定程度上也能夠降低服務(wù)器的壓力;后端的處理異常也不用直接反映到前端,通常分離可將異常處理變得更友好,比如以炫麗的頁面效果展示錯(cuò)誤消息。
隨著技術(shù)的發(fā)展,前后端技術(shù)的差異性也日異明顯,如果仍然以傳統(tǒng)web開發(fā)模式來實(shí)現(xiàn),短時(shí)間也不能確保公司員工都能精通全棧開發(fā),進(jìn)行前后端分離,后端更注重的是服務(wù)提供,而不用考慮前端的終端情況,至于如何布局,如何實(shí)現(xiàn)數(shù)據(jù)渲染展示交由前端完成,分工更明確,減少了前后端的耦合,降低了合作難度。
因?yàn)榍昂蠖思夹g(shù)及性質(zhì)的差異性,所以我們要做分離,但分離后如何實(shí)現(xiàn)前后端的交互,如何才能使交互更加簡單,這是分離后需要考慮的問題。
前后端分離后,通常前端通過AJAX技術(shù)異步請求后端資源,后端通過JSON返回響應(yīng)數(shù)據(jù)交由前端處理數(shù)據(jù)邏輯。原來我們使用XML來實(shí)現(xiàn)前后端數(shù)據(jù)交互,但XML解析比較繁瑣,數(shù)據(jù)傳輸冗余較大,所以采用了更方便的JSON格式,其實(shí)不管是XML還是JSON,都僅僅是數(shù)據(jù)存儲和傳輸?shù)囊环N格式,作用上是一致的,用以保證能實(shí)現(xiàn)交互。

傳統(tǒng)web開發(fā),有各種工程化構(gòu)建工具可以使用,現(xiàn)在對于前端來說,也有非常多優(yōu)秀的構(gòu)建工具,Grunt、Gulp、Webpack、Fis3等,前后端分離后,各端可更專注自己端的業(yè)務(wù),利用工程化構(gòu)建工具優(yōu)化開發(fā)也更方便。和用戶天天見面的界面內(nèi)容就交由前端去處理吧,業(yè)務(wù)數(shù)據(jù)服務(wù)功能就交由后端去完成,大家各司其職又相互協(xié)作。
優(yōu)勢與意義
對于前后端分離的意義我們也可以看做是前端渲染的意義,我主要總結(jié)了下面四點(diǎn):
1.徹底解放前端
前端不再需要向后臺提供模板或是后臺在前端html中嵌入后臺代碼,前端通過AJAX調(diào)用后臺接口,數(shù)據(jù)邏輯放在前端,由前端維護(hù)。
2.提高工作效率,分工更加明確
前后端分離的工作流程可以使前端只關(guān)注前端的事,后臺只關(guān)心后臺的活,兩者開發(fā)可以同時(shí)進(jìn)行,在后臺還沒有時(shí)間提供接口的時(shí)候,前端可以先將數(shù)據(jù)寫死或者調(diào)用本地的json文件即可,頁面的增加和路由的修改也不必再去麻煩后臺,開發(fā)更加靈活。
3.局部性能提升
通過前端路由的配置,我們可以實(shí)現(xiàn)頁面的按需加載,無需一開始加載首頁便加載網(wǎng)站的所有的資源,服務(wù)器也不再需要解析前端頁面,在頁面交互及用戶體驗(yàn)上有所提升。
4.降低維護(hù)成本
通過目前主流的前端MVC框架,我們可以非常快速的定位及發(fā)現(xiàn)問題的所在,客戶端的問題不再需要后臺人員參與及調(diào)試,代碼重構(gòu)及可維護(hù)性增強(qiáng)。