在上文中,概述了几种不同web server的构架特点,在这一节中,主要介绍Ajax的几种client/server数据交互模式。
1. 基于内容的模式。client会创建一个IFrame,并向server发起一个请求,这样server会根据Model, View, Controller产生相应的页面内容,并返回给IFrame,这种模式不需要在client这一层有任何business domain模型的存在。
2. 基于script的模式。这种模式下,server会将页面结果以Javascript方式返回给client,然后依靠client对其进行解释,并最终在browser上显示。在client这边,可以通过IFrame或XMLHttpRequest进行scripts的承载和解析。这种模式比第一种具备更小的信息交互量,并将业务逻辑层和显示层进行更好的隔离,同时client会负责处理更多的业务逻辑。
3. 基于data的模式。这种模式是XML作为数据格式的,以此统一各种client的处理格式。client业务的请求和结果返回都是通过XMLHttpRequest来承载的。client将处理更多的业务逻辑,并和server端只进行data的交互,从而让业务的表示层和逻辑层更好地分离出来了,从而也让client变得更胖些了。