先從Backbone說起,第一次接觸Backbone時,並沒體會到它的好處。
當領悟他它的設計精神後,有種耳目一新的感覺,類似初次使用Jquery時的感受。
Backbone.js是一套Javascript MVC,與Jquery結合,用於構建Web端的應用。通常我們所說的MVC框架多數是指服務器端的,而Backbone.js是瀏覽器端的MVC框架。
REST是一種廣泛應用的架構,包括資源,資源標識,對資源的操作。
通常通過HTTP URL標識資源,通過HTTP原生方法POST,PUT,GET,DELETE 對資源操作。
瘦服務端架構TSA(Thin Server Architecture),可以簡單理解爲面向API的架構。如下圖所示:
從上圖我們可以看到,在瘦服務端架構TSA中,服務端與客戶端分開,同過API 通信。
客戶端可能有手機程序,桌面程序,和瀏覽器。所有客戶端共用一套API,站在API的角度,瀏覽器被是爲多種客戶端的一種。
應用這種架構開發網站時,所有的模板處理和頁面跳轉都在瀏覽器端通過Javascript完成,也就是純Javascript的網站,可用於實現所說的單頁面網站應用single-page application (SPA)。
應用這種架構的好處是:
- 客戶端共用一套API,整個架構整潔優雅。容易維護。
- 前後的的開發工作可以分開。開發API的人員不用懂Javascript.
- 純AJAX的網站可提高網站用戶體驗度。
不利之處是:
- 瀏覽器端對Javascript 開發技術要求高。
- 純AJAX的網站,不利於SEO, 雖然根據Google的建議,可以實現Goole對Ajax頁面的收錄,對於對SEO依賴很大的網站,目前不建議使用。
對於像微博,團購之類客戶端多樣,對SEO依賴不大,對用戶體驗的極致關注的應用,瘦服務端架構是最好的選擇。
隨着用戶客戶端的多元化,Iphone,Android應用佔用率的提高,對網站易用性的關注,瘦服務端架構將得到廣泛應用。