3 Server-Side: Multi-Language
3.1 Cross-Platform Asynchronous INterface Toolkit (2005年5月)
CPAINT是一个真正的同时支持PHP和ASP/VBScript脚本的AJAX和JSRS工具包。CPAINT在后台提供你需求的AJAX和JSRS代码,并自动返回到浏览器端相应的Javascript脚本代码,这种方式易于实时反馈需求的WEB应用程序。
- 支持PHP和ASP
- 所有功能函数都在统一的JavaScript文件中
- 支持远程脚本和XML
- 支持本地和远程函数调用
- 可以创建单个或多个XMLHttp对象
- 返回给后台的数据即可以是文本也可以是XML/DOM文档对象
- 支持POST和GET
- 用服务端代理的方式实现远程函数和数据的访问操作
- 大部分浏览器中测试正常使用
- 在GNU、GPL、LGPL开源协议保护下发行
3.2 SAJAX (2005年3月)
SAJAX的实现方式很独特,例如:调用一个javascript方法x_calculateBudget(),将先把响应传到服务器并调用一个Java calculateBudget()方法,然后以javascript方式把值返回到x_calculateBudget_cb()中。SAJAX的名气不错,估计很多人都听过甚至用过,不过缺点就是它的这套映射理论感觉较繁锁,远不如一些轻量级的封装库好用,不过SAJAX最大的特点就是支持的平台丰富,几乎囊括了WEB下常用的编程语言和平台
- 很方便从JavaScript函数映射到服务端代理操作
- 支持多种平台(ASP/ColdFusion/Io/Lua/Perl/PHP/Python/Ruby)
- 开源协议
3.3 Javascipt Object Notation (JSON) and JSON-RPC
JSON是一个"face-free" XML,而JSON-RPC是一种远程交互协议,类似于XML-RPC,对JavaScript支持较强
3.4 JavaScript Remote Scripting(JSRS)(2000年)
JSRS,较经典的远程脚本访问组件,支持将客户端数据通过服务器做代理进行远程的数据/操作交互。
- 支持的浏览器:IE4+,NS4.x,NS6.x,Mozilla,Opera7和Galeon。
- 服务器端脚本语言支持:ASP,ColdFusion,PerlCGI,PHP,Python和JSP(servlet)。
- 开源协议。由Brent Ashley提供支持。
3.5 Bitkraft for ASP.NET
Bitkraft是个基于(.NET)Web框架的CLR(公共语言运行库),允许用独特的方式创建和操作分布式Web内容。用C#编写,运行在微软的.NET 1.1和Mono框架下,无缝式的客户端-服务器响应方式是它的最大特点。Bitkraft没有使用XML组织数据,而是用JSON代替。
- 支持的浏览器: IE5+, Firefox1+, NS6
- 服务器端要求:ASP.NET, Mono XSP, Cassini, Apache (modMono) .NET Framework 1.1+
- 事件驱动
- 支持同步和异步的远程代理
4 Server-Side: Java
4.1 WebORB for Java (2005年8月)
WebORB for Java是一个开发AJAX和基于Flash的富客户端应用程序的开发平台。在线例子
- WebORB包括一个富客户端开发类库。提供简单的在线式API用来绑定或者调用任何Java对象、XML Web Services和EJB
- 支持异步或同步的事件驱动
- 不需要在服务端修改任何代码,不需要自定义方法或属性、变量等。不要求设计时指定代理等。
- 同步调用不需要回调,异步调用需要一个回调方法。
- 客户端可以向服务端请求指定的活动方式,不需要任何编程就可以把处理结果轻易的转变为状态。
- 提供一个特定API来处理数据库查询结果-服务器代码能返回DataSet或者DataTable,而客户端以一个类似于RecordSet的JavaScript对象来显示这个结果。该对象提供检索列名和行数据的方法。
- 支持数据分页技术。客户应用程序能检索页面中的数据。
- 支持以参数的方式返回所有服务期端数据类型,如primitives, strings, complex types, arrays, native .net collections, remote references
- 目前有两个版本:标准版(免费),专业版(商业许可)
4.2 Echo 2 (2005年3月)
Echo 2允许你用纯Java语言编写AJAX程序。 Demo.
- 自动生成HTML和Javascript代码
- 用XML在客户端-服务端传递消息
- 如果愿意支持自定义Javascript组件
- 开源协议(Mozilla Public License or GNU LGPL)
4.3 Direct Web Remoting (DWR) (2005)
Direct Web Remoting可以在Javascript代码中直接调用Java方法的应用框架
- 类似于SAJAX,可以把Javascript中的请求调用转递到Java方法中并将执行结果返回给Javascript
- 可以和任何Web框架一起使用,如Struts、Tapestry等等
- 开源(Apache),目前该产品被加入到WebWork中
4.4 SWATO (2005)
SWATO是一套可重用的和良好集成的Java/JavaScript库,它实现了一种更容易的方式来改变你的web应用程序的交互,通过AJAX方式实现。
- 服务端Java库可以非常容易的部署到所有Servlet2.3+兼容的容器中
- 客户端Javascript库可以在所有支持XMLHttpRequest的浏览器中使用
- 使用JSON技术在服务端组织POJO数据,这样你可以在任何Javascript环境中(HTML、XUL、SVG)访问这些远程数据,这种方式很容易通过硬编码或者某种成熟的Javascript库集成到当前应用中
- 提供一个简单接口使你能在Javascript中调用远程的POJO数据
- 使用和灵活的在web.xml中进行配置,并且可以集成(不是必须)到你的Spring框架中
- 提供了几个可帮助你快速开发web应用程序的组件(如自动完成的文本框,在线表单,在线列表等等)
4.5 AJAX JSP Tag Library
The AJAX JSP Tag Library是一组JSP标签库,用来AJAX程序开发。可以在J2EE下无需Javascript就能轻松开发AJAX模式的Web Form。标签库为比较通用的AJAX功能提供了5个标签:
- autocomplete: 用户在文本框中输入字符,自动从指定的数据中匹配用户输入的字符,类似于Google Suggest
- callout:可以为A标签加入气泡式的消息提示框,不过是实时的服务端取出数据
- Select/dropdown:类似于联动菜单,比如地州市的联动下拉框
- toggle:开关闸按钮,比如在一个hidden表单域中存储true和falsh,同时显示相应的img图像
- update field:更新数据,也就是无刷新提交了。
4.6 AJAX Java Server Faces Framework
The AJAX-JSF用来把任意的JSF应用程序转变为AJAX应用程序
- 例子:AJAX组件的 MyFaces JSF Tree(树型目录), table scroller(可滚动的表格), tabbed pane(分页栏)
-
5 Server-Side: Lisp
5.1 CL-Ajax
CL-Ajax实现Javascript直接调用服务端Lisp
- 生成可带参数的函数
- 可以回调Javascript函数或者DOM对象
- 可以集成到SAJAX中
- 开源许可