一、AJAX使用中常遇到的问题

AJAX开发与传统的CS开发有很大的不同。这些不同引入了新的编程问题,最大的问题在于易用性。

由于AJAX依赖浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了。

这些问题中的大部分来源于浏览器、服务器和技术的组合,因此必须理解如何才能更好的使用这些技术。

二、AJAX常见框架

Dojo,ExtJS,GWT,Prototype,JQuery,MooTools

三、AJAX框架的分类

1)基与传输的解决方案:

它通过其框架的转换,使得页面的js可以透明调用服务器端语言方法并自动转换其间交换的数据类型;

但在页面的表现手段较差,如果你要展示一个漂亮互动的tree或grid,这样样的框架并没有提供支持。

如dwr,json;

2)可以理解为java语言到js的翻译器:

即服务器端以编写事件调用机制通讯的java代码,通过其框架导出成前台的js脚本调用;

对于开发者而言,只需要编写后端java代码即可;

这种类型框架的噱头就是:“不写一行js代码也能应用ajax技术!”。

典型的代码如GWT、ZK等。

3)以独立于服务器端语言的js脚本库形式发布:

基本上是一个独立的js类库,带有众多的工具函组、tree、form、grid等现成的组件,且有统一的设计风格;

所以它的优势就是页面组件非常完善;当然,学习起来需要对js语法相当熟悉。  以js脚本库为应用形式的,在开发时学习成本较高;

如yui、ext、jQuery等;

4)全栈式设计的RIA开发:

这种方式可以实现功能最为强大的RIA开发——可以理解为它将传统的本机应用开搬到了web上。

但其对网络带宽要求较高,且需要客户端浏览器插件支持。

可选的技术(平台)有javaFX、Flex、及Silverlight等。

与前面三种有本质区别的是:

前面三种都是基于http协议的,本质上是用XHR(XmlHttpRequest)将http的请求/响应模式包装为异步,

不存在面向连结的通信!也就不可能出现真正的"服务器推"技术;

但在Flex中,是可以在客户端自己创建到服务器的Socket。