以下Ajax开发框架大多来自于《Ajax Web2.0快速入门与项目实践(.net)》一书。
1. Bindows
Bindows是一个通过DHTML、JavaScript、CSS和HTML等技术强劲联合起来的完整的Windows桌面式Web应用程序解决方案。 它无需下载安装客户端支持组件(如Java、ActiveX或Flash),仅仅需要一个浏览器。纯OO的理念体现在Bindows任何地方,或许 Bindows是笔者见过的最完整、最强大的Ajax应用程序平台。一个强大的Demo见此。
Bindows是商业程序,使用了来自MB的技术(总部位于GA USA,主要开发中心在瑞典,成立于2002年)。
Bindows框架提供的功能和特性如下:
基于面向对象技术的类和API;
一套完整的Windows桌面系统,支持各种特性窗口模式,包括菜单、表单、表格、滑动条、测量仪器窗口和其它一些Windows窗口特性支持;
是开发zero-footprint(零空间占用)SOA客户端应用程序首选工具包;
本机的XML,SOAP和XML-RPC支持;
单用户到企业级开发的支持;
内建的完美的Ajax支持;
Bindows开发环境;
支持企业规模的项目开发;
跨浏览器、跨OS平台的支持;
不受服务器结构限制;
良好的与新的、现有的资源互操作性;
统一的开发接口。
2. BackBase
Backbase软件包含了带有附加库的JavaScript引擎,可以支持J2EE和.NET,它能够运行在任何环境,你可以用服务器端语言(ASP、 JSP、PHP等)动态生成页面内容。由于JavaScript可以运行在多种浏览器上,所以客户端无需安装任何插件。Backbase的基本引擎驱动了 客户端用户界面的扩展,Web程序能实现SPI(Single Page Interface)模式或者MPI(MultiPage Interface)模式。
Backbase软件包含3个版本:The communcity edition(只包含客户端)、J2EE BPS和.Net BPS。在后面的两个版本中,Backbase Presentation Server简化了服务端、业务逻辑和应用程序数据在胖客户端、轻量和交互式的Web应用程序中的整合。动态数据通过XML进行交互。
Backbase完全兼容了Web标准,包括结构化语言、表示语言、对象模型和脚本语言。它基于工业标准,Java、XML、XHTML、CSS和DOM 等都可以很好的运行在主流浏览器上。Backbase使用BXML,BXML是一种基于XML的平台中立的UI定义语言,用于描述在Web浏览器中运行的 动态用户界面。
BXML有以下重要特性:
DHTML和Ajax:它提供了一种强大的DHTML和Ajax的概念,不需要了解底层的跨浏览器的JavaScript编程;
扩展机制(Extensible Mechanism):所有的XHTML元素可以用BXML属性扩展,也可以创建自定义标签;
基于模型的范例(Model-based paradigm):BXML的基于模型的范例允许开发人员构建数据驱动的胖客户端,轻松的增加已存在的HTML站点和Web应用程序,定义UI行为无须使用脚本语言;
无障碍UI控件:一系列标记实现了控件,比如树结构和菜单。
3. DOJO
DOJO具有以下特点:
提供完整的轻量级窗口组件和浏览器-服务器消息映射支持;
提供创建自定义JavaScript窗口组件的框架支持;
预置的丰富的窗口类型库;
B/S消息映射支持--XMLHttpRequest和其它机制;
支持浏览器中的URL操纵功能;
开源许可(Academic Free License 2.1),由JotSpot的Alex Russell所领导。
附:AjaxPatterns上有一个详细的关于Ajax
4. Open Rico
OpenRico是一个支持Ajax架构和用户交互的多用户框架,该框架具有以下特性:
一个XMLHttpRequest response能被一个或多个DOM对象或者JavaScript对象调用;
支持拖拽操作;
支持基于Ajax的动画模式,如缩放和变换等;
基于Behaviors的操作库;
使用指南,由RussMirimar的Yonah提供;
开源,源于Sabre航空公司解决方案,由Bill Scott,Darren James及另外一些人维护。
5. qooxdoo
qooxdoo是另一个迅猛发展的应用框架,提供广泛的UI支持。
基础结构特性包括:
能轻易的捕获和操纵DOM事件;
支持调试;
支持一个时间操作的Timer类;
Getter/Setter支持。
UI特性包括:
窗口组件库和框架;
界面布局管理;
图像缓存和透明PNG图片处理;
开源(LGPL)。
6. Tibet
Tibet提供了大量的易移植且完整的JavaScript API,通过这些可以快速生成大量的客户端源代码,Tibet自称是企业级Ajax,其特点如下:
远程脚本调用封装在XMLHttpRequest中;
URI支持;
支持所有的HTTP事件,不再仅仅是GET和POST;
低级的协议-File://和WebDav也可以当作HTTP正常使用;
Web Services调用支持,包括SOAP、XML-RPC等;
大型的JavaScript对象库;
多种多样的XML操作支持;
IDE和开发工具
开源协议(OSI)。
7. AJFORM
AJFORM是一个极易掌握的Ajax框架,被用来编写入门级的Ajax代码,提供以下功能:
三步安装;
自动支持任意HTML表单元素;
几乎无需编码即可实现Ajax。
8. AjaxCaller
AjaxCaller是一个具有多线程安全访问的XMLHttpRequest组件,主要针对Ajax开发新手,目前仍处于alpha开发阶段,仅在AjaxPatterns的在线搜索范例中使用过该程序,其特点如下:
用明文或者XML结构的数据实现和服务器的交互(GET/POST/PUT/DELETE);
支持XMLHttpRequest对象的析构(销毁对象,C++支持内存对象的析构操作);
支持Response的高速缓存(尚在计划中);
简单的库文件代码易于新手学习使用,并且支持脚本调试;
开源协议。
9. Flash JavaScript Integration Kit
The Flash JavaScript Integration Kit可以实现Flash和JavaScript脚本的集成,可以在JavaScript中调用Flash ActionScript脚本,反之亦然。它支持双方主要数据类型在不同环境下的传递调用。
10. Google AJAXSLT
Google AJAXSLT 是一个开源协议(BSD)JavaScript框架,用来执行XSLT转换以及XPath查询。目前已经在Google Map中应用。
11. HTMLHttpRequest
HtmlHttpRequest 最大的特点就是运用了XMLHttpRequest对象和标准HTML标签IFrame来实现最大限度的跨浏览跨平台的Ajax支持,其原理是在支持 XMLHttpRequest的浏览器上调用XMLHttp;如果不支持,就用IFrame来模拟调用异步交互。它的主要特征如下:
目前支持的浏览器包括:IE6/Win、IE5.5/Win、IE5/Win、IE4/Win、Mozilla/Win、Opera7/Win、Safari/Mac、IE5/Mac;
尚未测试的浏览器:IE4/Mac、Mozilla/Mac、Opera/Other、Konqueror/Linux;
开源协议(LGPL)。
12. Interactive Website Framework
Interactive Website Framework是定位在浏览器中支持各种各样的Ajax基础应用的开源项目。自称是通过JavaScript、CSS、XML和HTML,能够实现高 性能的交互式Web框架。它包括一个可定制的易读的XML解析器。实际上,IWF是一个Ajax的基础框架,包括一些通用的脚本代码,它的特点如下:
实现了线程安全的XMLHttpRequest;
对XML Document进行封装,以便创建更具有可读性的代码;
原始的DOM操作读取;
开源协议。
LibXMLHttpRequest是一个小型的XMLHttpRequest封装包,它利用getXML()和postXML()两个事件简化了XMLHttpRequest调用,并且支持XMLHttpRequest对象池、Response缓存处理。
14. MAJAX
MAJAX是另一个非常小巧的XMLHttpRequest封装包,为收发字符型信息提供了简单接口,并且为每步动作设置了回调界面。
15. RSLite
RSLite是一个XMLHttpRequest封装组件,作为Brent Ashley的JSRS(JavaScript Remote Scripting)其中的部分功能单独发布。
16. Sack
Sack也是很有名的微型XMLHttpRequest封装包。调用者可以自定义回调函数或者DOM对象。借助回调DOM对象,可以把Response回来的数据直接以文本的方式嵌入到DOM中。
17. Sarissa
Sarissa是一个JavaScript API,封装了在浏览器独立调用XML的功能,它具有以下的特性:
可移植的XMLHttpRequest对象创造;
可移植的XPath查询;
可移植的DOM操控;
可移植的XSLT;
可移植的XML序列化;
开源协议(GPL2.0和LGPL2.1)。
18 XHConn
XHConn也是一个小型的XMLHttpRequest封装库。特点是调用简单,代码清晰易读。
19. WebORB
WebORB 是开发基于Flash的富客户端应用程序的开发平台。它包括一个富客户端开发类库,其主要特点如下:
提供简单的在线式API用来绑定或者调用任何Java,.NET对象、XML Web Services;
支持异步或同步的事件驱动;
不需要在服务端修改任何代码,不需要自定义方法或属性、变量等。不要求设计时指定代理等;
同步调用不需要回调,异步调用需要一个回调方法;
客户端可以向服务端请求指定的活动方式,不需要任何编程就可以把处理结果轻易地转变状态;
提供一个特定API来处理数据库查询结果-服务器代码能返回DataSet或者DataTable,而客户端以一个类似于RecordSet的JavaScript对象来显示结果,该对象提供检索列名和行数据的方法;
支持数据分页技术。客户应用程序能检索页面上的数据;
支持以参数方式返回所有服务器端数据类型,如primitives, strings, complex types, arrays, native collections, remote references;
目前有两个--标准版(免费)和专业版(商业许可)。
20. Echo 2
其主要特点如下:
Echo2 允许用纯Java语言编写Ajax程序;
自动生成HTML和JavaScript代码;
用XML在客户端-服务端传递消息;
如果愿意支持自定义JavaScript组件;
开源协议(Mozilla Public License or GNU LGPL)。
21. Direct Web Remoting (WDWR)
其主要特点如下:
Direct Web Remoting可以在JavaScript代码中直接调用Java方法的应用框架;
类似于SAJAX,可以把JavaScript中的请求传递到Java方法中并将执行结果返回给JavaScript;
可以和任何Web框架一起使用,如Structs、Tapestry等;
开源(Apache),目前该产品被加入到WebWork中。
22. SWATO
其主要特点如下:
SWATO是一套可重用的并且良好集成的Java/JavaScript库,它实现了一种更容易的方式来改变Web应用程序的交互,通过Ajax方式实现;
服务端Java库可以很容易的部署到所有Servlet2.3+兼容的容器中;
客户端JavaScript库可以在所有支持XMLHttpRequest的浏览器中使用;
使用JSON技术在服务端组织POJO数据,这样你可以在任何JavaScript环境中(HTML,XUL,SVG)访问这些远程数据,这种方式很容易通过硬编码或者某种成熟的JavaScript库集成到当前应用中;
提供一个简单的接口,使你能在JavaScript中调用远程的POJO数据;
使用<servlet>和<filter>灵活地在web.xml中进行配置,并且可以集成(不是必须)到Spring框架中;
提供了几个可帮助你快速开发Web应用程序的组件(如自动完成的文本框、在线表单、在线列表等)。
AJAX JSP Tag Library是一组JSP标签库,用于Ajax程序开发。在J2EE下可以无需JavaScript就能轻松开发Ajax模式的Web Form。标签库为比较通用的Ajax功能提供了5个标签。
autocomplete:用户在文本框中输入字符,自动从指定的数据中匹配用户输入的字符类似于Google Suggest;
callout:可以为A标签加入气泡式的消息提示框,不过是实时的服务端取出数据;
Select/dropdown:类似于联动菜单,比如省市镇的联动下拉框。
toggle:开关闸按钮,比如在一个hidden表单域中存储true和flash,同时显示相应的img图像;
update field:更新数据,也就是无刷新提交了。
AJAX-JSF用来把任意的JSF应用程序转变为AJAX应用程序。
24. Bitkraft for ASP.NET
Bitkraft是个基于Web框架(.Net的CLR公共语言运行库),允许用 独特的方式创建和操作分布式Web内容。它采用C#编写,运行在微软公司的.Net 1.1和Mono框架下。无缝式的客户端-服务器响应方式是它的最大特点。Bitkraft没有使用XML组织数据,而是用JSON代替。其主要特点如 下:
支持的浏览器包括IE5+、Firefox1+、NS6;
服务器端要求ASP.NET、Mono XSP、Cassini、Apache(modMono) .Net Framework1.1+事件驱动;
支持同步和异步的远程代理;
客户端支持所有的.NET类型或自定义类对象映射到JSON中;
用JSON取代XML。
免费,开源许可协议。
25. Ajax.NET
Ajax.NET是首家支持以各种方式通过JavaScript访问服务端.NET的免费库,类似于SAJAX。它能把JavaScript请求发到.NET方法,服务端传给JavaScript,甚至包括串行化自定义类。其主要特点如下:
可以在JavaScript中访问Session和Application数据;
缓存查询结果;
免费使用源代码;
无需更改源代码,允许给Ajax.NET添加和修改方法和属性;
所有类支持JavaScript客户端返回数据,可以在JavaScript中使用DataSet;
使用HtmlControls组件访问和返回数据;
页面无需重载,用事件代理(数据返回层);
因为只提供一个调用接口方法,所以服务端CPU占用非常少。
26. ComfortASP.NET
ComfotASP.NET可以让开发者在纯.NET下开发类似Ajax(DHTML,JavaScript,XMLHttp)特性的应用程序。其主要特点如下:
快速应答;
减少HTML传输;
减少页面重载;
无闪烁的浏览器内容更改;
良好的Ajax用户体验。
27. Magicajax
Magicajax以最简单的方式将Ajax功能整合到页面中,不需要修改ASP.NET控件,也不需要编写新的控件,更不需要撰写JavaScript,它有如下特性:
应用配置简单,易于上手;
只用一个AjaxPanel就可以实现Ajax功能,只要把需要无刷的控件放进AjaxPanel就可以了;
不需要编写复杂的Javascript;
Ajax功能和普通的Postback可以共存于一个Webform,MagicAjax处理模块只处理包含在AjaxPanel中的控件的CallBack动作;
ViewState的内容对于Postback和Callback来说,都是可见的,因此,无论是Callback产生的ViewState,还是Postback产生的,都是可见的;
提供一个类似PostBack的AjaxCall的事件模型;
支持IE和Firefox,未来支持更多浏览器,当浏览器不支持JS或者不是MagicAjax支持的类型的时候,页面将渲染成传统的形式。
28. Anthem.NET
和传统的Ajax技术相比,Anthem.NET有以下优点:
不需要任何技术升级,以前不会使用Ajax技术的人员,按照以往的编程方式就可以实现异步交互;
支持ASP.NET1.0和ASP.NET 2.0
CPAINT是一个真正可以同时支持PHP、ASP/VBScript脚本的Ajax和JSRS工具包。CPAINT在后台为开发人员提供了需要的Ajax和JSRS代码,并且自动返回到浏览器端相应的JavaScript脚本代码,它有如下特性:
支持PHP和ASP;
所有功能函数都在统一的Javascript文件中;
支持远程脚本和XML;
支持本地和远程函数调用;
可以创建单个或多个XMLHttpRequest对象;
返回给后台数据既可以是文本也可以是XML/DOM文档对象;
支持POST和GET;
用服务端代理的方法实现远程函数和数据的访问操作;
大部分浏览器中测试正常使用;
在GNU、GPL、LGPL开源协议保护下发行。
30. SAJAX
SAJAX的实现方式很独特。例如调用一个Javascript方法 x_calculateBudget(),先把响应传到服务器,同时调用一个Java calculateBudge()方法,然后以Javascript方式把值返回到x_calculateBudge_cb()中。它的缺点就是这套映射 理论感觉较繁琐,远不如一些轻量级的封装库好用,不过SAJAX最大的特点就是支持的平台很丰富(比如ASP/ColdFusion/Io/Lua /Perl/PHP/Python/Ruby),几乎囊括了Web下常用的编程语言和平台,可以很方便地从Javascript函数映射到服务端代理操 作。
其主要特点如下:
JSON是一个"face-free"XML,而JSON-RPC是一个远程交互协议,类似于XML-RPC,对JavaScript支持较强。
支持多服务端平台:Java、Python、Ruby、Perl;
针对不同的平台有不同的包和许可协议,如JSON-RPC-JAVA。
其主要特点如下:
JSRS是经典的远程脚本访问组件,支持将客户端数据通过服务器做代理进行远程的数据/操作交互;
支持的浏览器:IE4+、NS4.x、NS6.x、Mozilla、Opera7和Galeon;
服务端脚本语言支持:ASP、ColdFusion、PerlCGI、PHP、Python和JSP(servlet)。
开源协议,由Brent Ashley提供支持。
33. CL-Ajax
其主要特点如下:
CL-Ajax实现Javascript直接调用服务端Lisp;
生成可带参数的函数;
可以回调Javascript函数或者DOM对象;
可以集成到SAJAX中;
开源许可。
34. AjaxAspects
其主要特点如下:
AjaxAspects是个可以用Javascript调用服务端Web Service时间的引擎;
用标准的SOAP和WSDL进行服务端-客户端通信;
用简单的类型和XML对象支持带参数的返回值;
缓存支持;
动作队列;
免费使用,开源协议。
35. AjaxAC
其主要特点如下:
AjaxAC用一个单独类封装了完整的应用程序功能;
所有的功能集成在自包含的类中(另外附带一些JavaScript库);
调用PHP文件或者HTML页面非常简易,只需创建APP类后把类引用传递给需要调用的JavaScript对象或者HTML元素即可;
捕获JavaScript事件;
可以自定义配置数据,并且支持运行时参数更改;
无需在Javascript代码中夹杂凌乱的Html代码,所有事件都是被动态附加上的;
由于以上两个优点,所以支持良好的模板引擎;
容易Hook到PHP类和MySql数据已返回给自己的request;
能够容易地用JavaScript建立窗口模式应用程序。
36. JPSpan
其主要特点如下:
JPSpan通过Javascript直接调用PHP中的函数;
进行了严谨的单元测试;
开源许可(PHP)。
37. XAJAX
其主要特点如下:
XAJAX通过Javascript直接调用PHP中的函数;
支持用Javascript调用PHP脚本;
开源许可协议
38. Ruby On Rails
其主要特点如下:
Ruby On Rails是一个支持Ajax的完整Web框架,使用Ruby语言编写,严格按照MVC结构开发;
当Ajax出现的时候Rails还处于其发展的早期,Ajax可能逐渐成为Rails框架的核心;
生成浏览器中大多数/全部的Window应用组件和动画的Javascript脚本。
支持服务端调用;
队列支持;
开源许可。
附:
AjaxPatterns上开发框架的WIKI页