首先,“按需取数据”的模式减少了数据的实际读取量,其次,即使要读取比较大的数据,也不用像RELOAD一样出现白屏的情况,由于Ajax是用XMLHTTP发送请求得到服务端应答数据,在不重新载入整个 页面的情况下用Javascript操作DOM最终更新页面的,所以在读取数据的过程中,用户所面对的也不是白屏,而是原来的页面状态(或者可以加一个 LOADING的提示框让用户了解数据读取的状态),只有当接收到全部数据后才更新相应部分的内容,而这种更新也是瞬间的,用户几乎感觉不到。
3) 更好的用户体验
4) 也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽租用成本
5) Ajax由于可以调用外部数据
6) 基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序
7) Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离)
d) ajax的问题
l 搜索引擎不友好
l 一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax
l 用JavaScript作的Ajax引擎,JavaScript的兼容性和调试都是让人头痛的事
l Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰――用户不太清楚
现在的数据是新的还是已经更新过的
l 对流媒体的支持没有FLASH、Java Applet好
e) ajax框架及分类
1. Aplication frameworks
应用程序框架, 通过窗口生成组件建立GUI
l Bindows
l BackBase
l DOJO
l qooxdoo
2. Infrastructural frameworks:
提供基本的框架功能和轻便式浏览器端操作,让开发者去创建具体应用,主要功能包括:
l 基于XMLHttpRequest组件的浏览器交互功能
l XML解析和操作功能
l 根据XMLHttpRequest的返回信息进行相应的DOM操作
l 一些特殊情况下,和其他的浏览器端技术如Flash(或Java Applets)等集合到一起应用
l AjaxCaller
l Flash JavaScript Integration Kit
l Google AJAXSLT
3. 基于服务器端的应用框架通
n HTML/JS生成: 通过服务器端生成HTML和JS代码在传递给浏览器端进行直接运行
n 远程交互: JavaScript调用服务器端函数(例如调用Java函数)并返回给JavaScript的回调句柄,或者请求服务器端数据信息,例如Session信息,数据库查询等
l Echo 2
l Direct Web Remoting (DWR)
f) ajax应用