1 大大减少了服务器端和客户端的数据流量,不像submit-responce时代需要参杂大量的html脚本。
2 丰富了客户端的相应,例如表单子段的提示输入,数据验证。多级列表的实现。树桩菜单的动态加载等等
需要注意的事:Ajax设计时候一定要考虑用户界面事件触发的无序性。1 对一些有写操作的地方,要根据情况实行界面锁定功能,即提交完成前,不可以进行其他操作。2 任何操作都要给用户 Load... 这样的提示
Ajax的三种形式
1 最原始的XMLHTTPRepuest方式,
这种方式最灵活,你可以自由访问任何通用网关接口,返回你自己定义的XML格式,然后通过xml脚本显示出来。当然这是最原始的方法,不适合大规模应用程序的开发
2 Javascript封装好的函数库
Protype, RicoAjaxFramework 等ajax库。他们封装了操作ajax得大部分细节操作,你通常只需要写一些handler,然后服务器端按固定格式返回相应的xml就可以了
当然还有很多丰富应用程序开发的脚本。
2.1 Dojo 等,非常抽象的一个库,重新定义了自己的事件分发机制,不过界面上仍然是html得界面。
2.2 Bindows,qooxoo等javascript widget,他们使用自己的界面风格,基本上,很难和原有的网站结合
无论上面那种javascript库,调用的时候都可能会引起浏览器加载的一些过载,这是很讨厌的事情。
当然如果你这样用了,你已经实现了第二个层次,即Ajaxian化了。
3 和某种脚本语言榜定的标签库,自动生成ajax的访问脚本,和服务器端交互
DWE java
Ajaxac php
通过封装的形式,操作ajax得javacript被封装了起来,更好的实现了组件级的重用。
如果你到了这一步,应该算进入社会主义了
4 当然中级目标是动态加载的脚本和官方的编程语言例如JSF结合起来,然后可以用GUI得手段动态变成。实现真正的Web Application得RIA。