从图2所C可以看出,在Ajax中,每个客户端表现的面可以由多个服务器端页面共同完成,一个服务器端页面可以ؓ多个客户端页面服务。在q样的模式下Q每个服务器端页面可以将功能的粒度分的很l,至于q些功能怎么l合Q则完全是客L的事。通过Ajax引擎Q客L面可以Ҏ用户的需求来调用服务器端相应的页面,获得数据q显C在面上。此时许多服务器端页面已l不能称之ؓ面Q应该称之ؓ接口?br /> ⑶两U开发模式的比较
①传lWeb模式的工作流E?br /> 比vAjax中的异步的概念,在传lWeb模式中是一U同步的概念Q用户必ȝ待每个请求,当一个请求完成后才能获得l果Q在使用完这些结果后才会发出新的h。如时序?描述
从图中可以看刎ͼ在传l的Web开发中Q完全是一U请求→h→响应的模型Q用户只有等h完成后才能进行用h作,操作完成后才能提交下一个请求,用户行ؓ和服务器行ؓ是一U同步的关系Q需要相互等待,正是q种{待Q造成了BSl构客户端和CS架构客户端的本质区别?br /> ②AjaxE序的工作流E?br /> 在基于Ajax的WebE序中,最为重要的特征是同步请求{变ؓ异步h。这意味着客户端和服务器端不必再相互等待,而是可以q行一些ƈ发的操作。用户在发送请求以后可以l当前工作,包括览和提交信息。在服务器响应完成之后,Ajax引擎会将更新的数据显C给用户Q而用户则工具响应内容来决定自׃一步的行ؓQ图4描述了异步Ajax操作的流E?br />
从图4中可见,在用戯为和服务器端多了一层Ajax引擎Q他负责处理用户的行为,q{化ؓҎ务器的请求。同时它接收服务器端q回的信息,l过处理后显C给用户。由于Ajax在后C异步的方式工作,用户无需{待服务器的处理Q可以进行ƈ发工作,q就在用L面层ơ上更ؓ接近了CS架构的客Lq_?br />
注意Q同步和异步只是两种开发模式的区别中的一个。Ajaxq带来了性能的提高:因ؓ用户的行为经q了Ajax引擎的处理,使得客户端可以只获取需要的数据。DOM模型使得动态改变页面的层次l构成ؓ可能Q这样动态获取的数据可以动态的嵌入到页面之中,避免了数据重复加载带来的速度和效率问题。服务器端的l织形式则可以将功能划分的更l,q样服务器就可以只ؓ有用的数据进行工作,大大提高了运行效率?br />
3、Ajax中的关键技?/font>
Ajax是多U技术的一个组合应用,管很多技术都已经存在多时q且相当成熟Q但却没有引起h们够重视,对它们的了解一般也都停留在一个很基础的阶Dc现在就对q些技术做一个简要的介绍Q说明他们在Ajax中所L作用以及如何协同工作的?br /> ⑴JavaScript脚本语言
面设计时常怼加入一些特效,q个是JavaScript的功功?br /> 在Ajax中,JavaScript已经从后台状态{Ud前台Q发挥着巨大的作用。可以说QJavaScript是Ajax中的黏合剂,它DOM、XHTML、XML和CSS可以互相协作Qƈ控制他们的行为?br /> 现在WebE序中基于JavaScript实现很多功能已经h相当大的实用性了Q不再是一些特效或者表单验证之cȝ单应用了Q这些应用所使用的JavaScript技术也是相当专业的。因此,要开发复杂高效的Ajax应用E序Q就必须对JavaScript有深入的认识Q应该象对待一门新的语a一h对待它?br /> ⑵XMLHttpRequest对象
XMLHttpRequest是一个长期被人忽视的对象Q这与它强大的功能不相匹配。借助他可以在|页的背后和览器进行异步通讯Q而无需h整个面。XMLHttpRequest对象在JavaScript中创建ƈ使用Q客L可以仅仅从服务器端获取它需要的信息Q通过DOM和CSS的结合,可以实现局部刷新的效果Q同时还可以通过XMLHttpRequest对象异步提交信息Q将用户的输入在后台提交到服务器而无需hq个面?br /> ⑶可扩展标记语言(XML)
XML作用很大而且qؓ接受Q它q_、跨领域的应用提供了一U通信手段。在Ajax中,它以客户端和服务器端通信载体的n份出现。按照最初对Ajax的定义,服务器端和客L的通信都应该由XML来完成。事实上Q用XML的确可以带来很多好处Q例如数据传输非常规范;服务器端和客L的开发h员可以很好的协同工作Q不用ؓ数据格式的问题而烦|可以方便C用XSLTXML文直接转换为HTML片断插入到页面中?br /> h对象模?DOM)
文对象模型(DOM)用来表示昄在浏览器上的整个文对象及其层次l构。在Ajax中,DOM模型是不可缺的一部分。用JavaScript可以讉K文中的所有节点,x有对象?br /> 通过改变q些对象的属性,用户可以控制面的局部行为,动态获取的数据插入到文档中Q实现局部刷新的目的。用戯可以利用DOM模型增加和删除文结点,实现界面元素的动态变化?br /> ⑸联样式表技?CSS)
CSS最q两q是热火朝天Q其中一个重要的原因是使用Web标准q行面设计正逐渐成ؓL?br /> 在Ajax中,CSS同样担当着界面表现的重任,光要性甚臌q了传统的WebE序设计。JavaScript通过XMLHttpRequest对象和服务器q行交互Q通常获取的都是单U的数据Q不包括表现元素Q而将q些数据插入到文本w就是一仉怸谨的工作Q如果此时还需要用JavaScript操作标记的属性来控制其外观,会代码更加复杂而且难以l护Q也无法做到使程序开发h员和界面设计人员分工合作Q用CSS则能很好的解册个问题。CSS知道出现在某个地方的标记应该昄什么样式,通过单的cd性和id属性也很容易决定那些元素应该有怎样的表现Ş式?br />
4、用Ajax带来的问?/font>
⑴用h览习惯改变带来的问题
⑵对搜烦引擎的不友好
⑶前q后退按钮的失?br /> ⑷刷新定位问?br /> ⑸性能问题
⑹开发难度的加大