AJAX(Asynchronous JavaScript And XML,异步JavaScript 与 XML)AJAX强调的是减少页面的整体刷新,代之以局部数据刷新。当一个局部数据刷新的请求从客户端被发起时,表现层必须有能力主动的获得所需要的数据。这种操作类似于客户端通过表现层从后端的数据模型中的拉取数据,即拉模式(Pull Mode)。
狭义的AJAX是指通信机制,广义的AJAX至少还包括一套与AJAX通讯机制结合的Widget(UI组件)。
Model2的MVC假设需要通过一系列的页面转化来完成一笔业务,每张页面通常比较简单,功能单一,页面转换是通过页面刷新完成的,因而每次页面转化都要将前面几步的数据带到下一个页面,直接导致的结果是服务器端出现臃肿、繁琐的数据传递代码,离散的页面通过业务逻辑的约束被序列化,这种运行时的序列化是被服务器端管理的,Controller和Model层非常复杂,服务器端代码随着业务需求的复杂而越来越臃肿。
在传统MVC的基础上,加上AJAX无刷新的与服务器端交互的能力与强大的Widget(UI组件),使得可以轻松制作出更加复杂的界面。这种复杂程度的界面通常可以独立完成一笔业务,消除了页面间的数据传递,更能保证业务操作的原子性,客户端的AJAX请求代替了页面刷新请求,业务逻辑中对规范客户操作的约束放到了客户端,可以提前验证客户操作的合法性,提高了向服务器端传递的数据质量。服务器端的View层更加专注于AJAX通信;Model层集中精力处理核心业务逻辑,负担锐减;由于已无必要进行大量的页面跳转,Controller层也随之简化。
这种AJAX + MVC的开发模式称之为Model 3。
(图:Model 1至Model 2到 Model 3开发模式的演进)
Dorado 5 : 3.开发模式Model 3(AJAX + MVC) (WP)
worddav278e42f1fac0617f467b71534946c0ab.png (image/png)