传统web开发模式
传统的Web应用交互由用户触发一个HTTP请求到服务器,服务器接收并对其进行处理后再返回一个新的HTML页到客户端。每当服务器处理客户端提交的请求时,客户都只能空闲等待,哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都会返回整个的HTML页,所以用户每次都要浪费时间和带宽去重新读取整个页面,这个做法不但浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,响应时间就依赖于服务器的响应时间,这也就导致了用户界面的响应比本地应用慢得多。
工作原理图
数据交互流程图
用户体验
Ajax开发模式
不同于传统开发,AJAX应用采用的是异步交互方式,不需要等待服务器响应,另外AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的WebService接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,因此响应非常快。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
工作原理图
数据交互流程图
用户体验
AJAX优缺点
AJAX特点
◎使用XHTML+CSS来标准化呈现
◎使用XML和XSLT进行数据交换及相关操作 ◎使用XMLHttpRequest对象与Web服务器进行异步数据通信◎使用Javascript操作DOM进行动态显示及交互
◎使用JavaScript绑定和处理所有数据AJAX优点
◎局部刷新页面,减少用户心理和实际的等待时间,带来更好的用户体验 ◎减轻服务器的负担,按需取数据,最大程度的减少冗余请求 ◎基于xml标准化,并被广泛支持,不需安装插件等 ◎进一步促进页面和数据的分离 ◎可以在页面内与服务器通信,使得构建智能化的客户端控件成为可能。例如:数据表格,树型控件等各种复杂的控件。
AJAX缺点
◎AJAX依赖浏览器的JavaScript和XML,在编写的时候要考虑对浏览器的兼容性。由于JavaScript和Debug的兼容性,在编写程序的时候需要先进行逻辑判断,对不同浏览器进行不同处理。
◎AJAX只是局部刷新,它可能破坏浏览器后退按钮的正常行为
浏览器仅能记下历史记录中的静态页面,在动态更新页面的情况下,用户无法回到前一个页面状态。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。
◎一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax
如果使用不当,AJAX会增大网络数据的流量,从而降低整个系统的性能。
◎破坏程序的异常处理机制。
Ajax.dll,Ajaxpro.dll等这些Ajax框架是会破坏程序的异常机制的。
◎AJAX的安全性低
AJAX技术给用户带来很好的用户体验的同时也对IT企业带来了新的安全威胁,Ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。Ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有Ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、sql注入攻击和基于Credentials的安全漏洞等等。
Ajax极大地改善了Web应用的可用性和用户的交互体验,并得到了用户和市场的广泛认可。我们可以说,Ajax就是用户和市场的选择。
看到几张非常棒的表格总结,直接粘贴过来分享一下。
***********************************************************************************
**********************************************************************************