關於先後端分離與模板引擎

隨着不一樣終端(Pad/Mobile/PC)的興起,對開發人員的要求愈來愈高,純瀏覽器端的響應式已經不能知足用戶體驗的高要求,每每須要針對不一樣的終端開發定製的版本,爲了提高開發效率,先後端分離的須要愈來愈被重視,後端負責業務/數據接口,前端負責展示、交互邏輯,同一份數據接口,可用於多個終端。html

傳統的先後端:前端

  後端是跟數據庫跟服務器打交道的,前端是跟瀏覽器打交道的。但彷佛他們的職責在之前甚至於如今都並不明確,雖然前端是跟瀏覽器打交道,可是最終瀏覽器拿到的頁面是服務器經過模板生成的一個臨時靜態頁面而已。因此,實際上後端也摻和進來了,由於他要處理模板。固然,通常傳統上的開發協做模式有兩種:數據庫

  • 一種是前端先寫一個靜態頁面,寫好後,讓後端去套模板。靜態頁面能夠本地開發,也無需考慮業務邏輯只須要實現View便可。不足是還須要後端套模板,這些前端代碼後端須要瀏覽一遍,以避免出錯。編程

  • 另外一種協做模式是,前端直接去寫模板,這樣作的問題在於,前端編寫過程當中很依賴與後端環境,若是當後端沒寫完的狀況下,前端幾乎無法幹活。json

在作先後端分離時,第一個關注到的問題就是 渲染,也就是 View 這個層面的工做,模板引擎、先後端分離、單頁模式,它們本應是三個徹底分離的概念,但確實有不少現代 Web 項目同時使用了這些技術,因而它們的概念就常常被混淆。雖然它們各自並不閃耀,但當它們一塊兒使用時確實能夠成爲現代 Web 中一種優秀的實踐。

模板引擎後端

  模板引擎是至關古老的東西了,如今能看到的不少後端編程語言其實都是基於模板引擎的。但這種語言級的模板引擎其實很難讓開發者滿意。之前寫 ASP 的時候以爲用程序把數據庫查詢出來的數據填入頁面中是一件很痛苦的事情。不是寫出一堆凌亂的標籤就是程序裏作一堆字符串拼接。若是再考慮上內容的安全性,要作各類過濾和轉義,簡直會讓人奔潰。

先後端分離瀏覽器

  先後端分離的故事得從 Ajax 提及。在 Ajax 流行起來後,你們都開始了「無刷新」之旅。當時大部分網站都是以連接形式跳轉的時候,本身使用「無刷新翻頁」以爲已經很先進了。後來無刷新翻頁也漸漸開始爛大街,百度搜一下能夠搜出一坨東西,因而就開始考慮全頁面的無刷新操做。漸漸地「Web 接口」這種東西出現,可是此時的「接口」其實主要仍是直接輸出 HTML,並無考慮結構化之類的東西

單頁模式安全

  單頁模式是先後端分離的一種應用。而單頁應用最主要的特色就是局部刷新,這經過前端控制路由調用AJAX,後臺提供接口即可以實現,並且這樣的方式用戶體驗更加友好,網頁加載更加快速,開發和維護成本也下降了很多,效率明顯提高。
 
 
先後端分離的實現對技術人員尤爲是前端人員的要求會上升一個層次,前端的工做不僅是切頁面寫模板或是處理一些簡單的js邏輯,前端須要處理服務器返回的各類數據格式,還須要掌握一系列的數據處理邏輯、MVC思想和各類主流框架。
 
優點與意義
一、完全解放前端
  前端再也不須要向後臺提供模板或是後臺在前端html中嵌入後臺代碼
二、提升工做效率,分工更加明確
  先後端分離的工做流程可使前端只關注前端的事,後臺只關心後臺的活,二者開發能夠同時進行,在後臺尚未時間提供接口的時候,前端能夠先將數據寫死或者調用本地的json文件便可,頁面的增長和路由的修改也沒必要再去麻煩後臺,開發更加靈活。
三、局部性能提高
  經過前端路由的配置,咱們能夠實現頁面的按需加載,無需一開始加載首頁便加載網站的全部的資源,服務器也再也不須要解析前端頁面,在頁面交互及用戶體驗上有所提高。
4.下降維護成本
   經過目前主流的前端MVC框架,咱們能夠很是快速的定位及發現問題的所在,客戶端的問題再也不須要後臺人員參與及調試,代碼重構及可維護性加強。
相關文章
相關標籤/搜索