基于Backbone.js,REST技术的瘦服务端架构介绍
基于Backbone.js,REST技术的瘦服务端架构介绍
先从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应用占用率的提高,对网站易用性的关注,瘦服务端架构将得到广泛应用。