一、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。