浏览器端框架被划分成两大类:
·应用程序框架:提供浏览器的功能,但是常以包括窗口小部件抽象
·基本结构框架:提供基本的管道和可移植的浏览器抽象,让开发者
*
针对XMLHttpRequest的包装器以封装浏览器-服务器
* XML操作和查询。
* 根据来自XMLHttpRequest的应答执行DOM操作。
*
在一些情况中,与另外的浏览器端技术如Flash(和潜在的Ja
applets)集成在一起。
而服务器端框架通常以下面两种方式工作(尽管它们在这里根据语言
·HTML/JS生成:服务器提供完整的HTML/Javasc
·远程调用:Javascript调用直接被路由到服务器端功能
·纯Javascript:应用程序框架
1.1 Bindows(自从2003年)
网址是:http://www.bindows.net,Bindows是一个软件开发包(SDK),它,通过强力联合D
·它是商业化的,使用来自于MB的技术(总部位于GA
USA,主要开发中心在瑞典,成立于2002年)。
Bindows框架提供给你:
·基于类的面向对象的API
·一套完整的窗口系统,提供宽范围的窗口小部件支持,包括菜单、
·用于开发zero-footprint
SOA客户端应用程序的领先的工具箱
·本机的XML,SOAP和XML-RPC支持
·单用户到企业级的支持
·内建的对AJAX的支持
Bindows开发环境:
·支持企业级规模的工程开发
·跨浏览器,跨平台支持
·服务器独立结构
·与新的和现有资源的互操作性
·一致性开发方法学
1.2 BackBase(自从2003年)
网址是:http://www.backbase.com,是一个全面的浏览器端框架,支持丰富的浏览器功能以及与.NET
·商业化,来自于Backbase
B.V(总部在Amsterdam,成立于2003年)。
1.3 DOJO(开发中;自从2004年9月)
网址是:http://dojotoolkit.org/,提供全面窗口小组件和浏览器-服务器消息支持。
·为创建定制的Javascript窗口小组件提供框架支持。
·预置的窗口小组件库。
·浏览器-服务器消息支持-XMLHttpRequest和另外
·支持浏览器中的URL操纵功能。
·开源许可(学术自由许可2.1(http://opensource.org/licenses /afl-2.1.php)),由JotSpot(http://www.jot.com/)的Alex
Russell(http://alex.dojotoolkit.org/)所领导。
1.4 Open Rico(开发中;自从2005年5月;基于早期的私有框架)
网址是:http://openrico.org/demos.page ,是一多用途框架,支持Ajax基础结构和用户交互。
·一个XMLHttpRequest应答能被路由到一个或者更多
·容易鼠标拖动支持。
·Ajax动画,例如缩放和变换。
·"行为"-实质上是窗口小组件库。
·使用指南(http://www.mirimar.net/mailbro wser/),由RussMirimar的Yonah所提供
·开源。源于Sabre航空公司解决方案,由Bill
Scott(http://looksgoodworkswell.blog spot.com),Darren
James及另外一些人所支持。
1.5 qooxdoo(开发中;自从2005年5月)
网址是:http://qooxdoo.sourceforge.net /,是另一个雄心勃勃的框架,提供宽范围的UI支持和正在开发中的基
·基础结构:
* DOM和事件/焦点管理的可移植的抽象。
* 调试支持。
* 易于时间调度的Timer类。
* Getter/Setter支持。
·UI:
* 窗口小组件框架和预置的窗口小组件库。
* 布局管理器。
* 图像缓冲和可移植的PNG透明性。
·开源(LGPL)。来自多方面的贡献者。
1.6 Tibet(开发中;自从2005年6月)
网址是:http://www.technicalpursuit.co m/,目的是提供高度可移植的和全面的Javascript
API,结果是,可能自动生成大量的客户端代码。自称是"企业级
·远程脚本运行在XMLHttpRequest包装之上-通过协
·URI支持。
·所有的HTTP方法-不仅是"GET"和"POST"。
·低级的协议-File://和WebDav以及HTTP。
·Web服务调用-SOAP,XML-RPC,等等。
·预置的针对Google API,Amazon API等等服务的支持。
·由高级Javascript对象组成一个巨大的库。
·许多XML操作。
·IDE和开发工具。
·开源许可(显然经过OSI认证,但是细节不多)。
2 纯Javascript:基础结构框架
2.1 AjaxCaller(Alpha版本;自从5月2005年)
网址是:http://ajaxify.com/run/testAja xCaller/,是一基本的线程安全的XMLHttpRequest包装器,主要
·实现对服务器的调用(GET/POST/PUT/DELETE
·使用过的XMLHttpRequest对象的析构。
·Response缓冲(计划的)。
·针对Ajax新手-并非强调性能优化,该库主要用于实现易读的
·开源许可。由Michael Mahemoff(http://softwareas.com)(具有John
Wehr和Richard Schwartz的一些思想)维护。
2.2 Flash JavaScript集成包
网址是:http://www.osflash.org/doku.ph p?id=flashjs,允许JavaScript和Flash内容的集成:
·使JavaScript能够调用ActionScript功能
·所有主要的数据类型能在这两种环境之间传递。
·开源许可。由多个开源Flash贡献者提供支持。
2.3 Google AJAXSLT(发行于2005年6月)
网址是:http://goog-ajaxslt.sourceforg e.net/,是一个Javascript框架,用来执行XSLT转换以及XP
·建立在Google地图工作基础之上。
·开源许可(BSD)。由一家创新搜索方案公司支持,自称为"G
2.4 HTMLHttpRequest(Beta版;始于2005年)
HtmlHttpRequest(http://www.twinhelix.com/javas cript/htmlhttprequest/),它使用了XMLHttpRequest和Iframes以改进兼
·测试过并能工作在:IE6/Win,IE5.5/Win,IE
·未测试,可能能工作在:IE4/Mac,Mozilla/Ma
·开源许可(LGPL)。由Twin Helix
Designs(http://www.twinhelix.com/)的Angus Turnbull维护。
2.5 交互式网站框架(自从2005年5月)
交互式网站框架(http://sourceforge.net/project s/iwf/,是一个项目,目的是从浏览器端对Ajax基础结构的多方面予以支
·线程安全的XMLHttpRequest实现。
·针对XML文档的包装器,以便你能够创建更具可读性的代码:
var node = doc.groceries.frozen[0].pizza[
代替手工的导航:
var node =
doc.documentElement.firstChild
·开源许可。由Weaver(http://circaware.com|Brock)维护。
2.6 LibXMLHttpRequest(发行于2003年6月)
libXmlRequest(http://www.whitefrost.com/serv let/connector?file=reference/2 003/06/17...是XMLHttpRequest的一个瘦包装器。
·getXML()和postXML()方法。
·XMLHttpRequest对象池支持。
·Response缓冲。
·可用源码(明显),但是受标准版权的保护,由Stephen
W.Coate(http://www.whitefrost.com/inde x.jsp)所维护。
2.7 RSLite(x)
网站是:http://www.ashleyit.com/rs/mai n.htm,是一个针对XMLHttpRequest的瘦包装器。
·一个简单的组件,作为Brent
Ashley的更全面的远程脚本工作(参见Javascript
2.8 Sack(在开发中,自从2005年5月)
网站是:http://twilightuniverse.com/20 05/05/sack-of-ajax/,是一个针对XMLHttpRequest的瘦包装器。
·调用者能指定回叫函数或者回叫DOM对象。借助于回叫DOM,
2.9 Sarissa(发行于2月,2003年)
网站是:http://sarissa.sf.net,是一种Javascript
API,它封装了在浏览器端可以独立调用XML的功能。
·可移植的XMLHttpRequest创建
·可移植的XPath查询
·可移植的DOM操作
·可移植的XSLT
·可移植的XML串行化
·开源(GPL2.0和LGPL2.1)。来自多方面贡献者。
2.10 XHConn(发行于自从4月,2005年)
网站是:http://xkr.us/code/javascript/ XHConn/,是一个对XMLHttpRequest的瘦包装器。
·例如:
new
XHConn().connect("mypage.php",
·开源许可。由Brad Fults所维护。
3 服务器端:多种语言
3.1 跨平台异步的接口工具箱(5月2005年)
CPAINT:http://cpaint.sourceforge.net/ ,是一真正的支持PHP和ASP/Vbscript的Ajax实现
·支持PHP&ASP
·针对所有函数的一致的JavaScript文件
·支持远程脚本和XML
·支持本地和远程函数
·单个或者多个XMLHTTP对象
·以文本或者JavaScript XML/DOM文档对象方式返回后台数据
·能支持POST和GET请求
·后台代理函数来访问远程函数和数据
·在所有的主要浏览器上测试过
·在GNU GPL&LGPL保护下发行
3.2 SAJAX(可用,但是不是1.0版本;自从3月2005年)
网站是:http://www.modernmethod.com/sa jax/,直接把调用从Javascript发送到你的服务器端语言并再次
calculateBudget()方法,然后以javascr
·便利从Javascript代理函数到后台操作的映射。
·能够代理对众多服务器端平台(ASP/ColdFusion/
·开源许可。来自多方面贡献者。
3.3 Javascipt对象标志(JSON)和JSON-RPC
JSON(http://www.crockford.com/JSON/ index.html),是一个"胖的自由的XML选择",而JSON-RPC(http://www.json-rpc.org/)是一种远程过程协议,类似于XML-RPC,强有力支持Javas
·实现多服务器端平台(http://www.json-rpc.org/impl.x html):Java,Python,Ruby,Perl。
·针对每种平台有独立的打包和许可,如JSON-RPC-Jav
3.4 Javascript远程脚本(JSRS)(自从2000年)
网址是:http://www.ashleyit.com/rs/jsr s/test.htm,直接把调用从Javascript发送到你的服务器端语言并再次
·知名的浏览器:IE4+,NS4.x,NS6.x,Mozil
·服务器端支持:ASP,ColdFusion,PerlCGI
·开源许可。由Brent
Ashley(http://www.ashleyit.com/)提供支持。
4 服务器端:Java
注意:许多现有的框架最近正在添加Java支持(例如strut
4.1 WebORB for Java(自从2005年8月)
网址:http://www.themidnightcoders.c om/weborb/aboutWeborb.htm,是一个平台,支持开发AJAX和基于Flash的胖客户端应用程
Web服务相系起来。在线举例(http://www.themidnightcoders.com/exam ples)
·WebORB包括一个称作丰富的客户系统(http://www.themidnightcoders.c om/rcs/index.htm)的客户端库。该丰富的客户系统提供一简单的在线api来绑定到并调
Web服务或者EJB上的方法。
·支持同步的和异步的方法调用。
·并不要求在服务器端代码上作任何修改,不需要定制方法属性,特
·同步调用返回来自于该调用(不需要回叫)的数据。异步的调用依
·任何服务器端方法能被同步地或者异步地调用。
·客户应用程序能向服务器对象请求指定的活动方式。结果,对象能
·提供一个特定API来处理数据库查询结果-服务器代码能返回D
JavaScript对象来显示这个结果。该对象提供一个方法以
·支持数据分页技术。客户应用程序能检索页面中的数据。
·支持所有的服务器端参数类型并返回值-原型,字符串,复合类型
·共有两种版本可用:标准版(自由)和专业版(商业许可)
4.2 Echo 2(自从3月2005年)
网址是:http://www.nextapp.com/product s/echo2/,允许你用纯Java代码编写Ajax应用软件(范例(http://demo.nextapp.com/Intera ctiveTest/ia))。
自动地生成HTML和Javascript。
·协调浏览器和服务器之间的消息。消息形式为XML。
·如果需要,可以手工编写定制的Javascript部件。
·开源许可(Mozilla公共许可或者GNU LGPL)。源于Next
App,Inc.(http://www.nextapp.com/)。
4.3 Direct Web Remoting (DWR)(2005年)
网址是:http://www.getahead.ltd.uk/dwr /,是一个框架,用于直接从Javascript代码中调用Java
·象SAJAX,能把Javascript中的调用传递到Jav
·能与任何web框架(Struts,Tapestry,等等)
·开源许可(Apache(http://www.apache.org/LICENSE. txt))。由Joe
Walker(http://www.getahead.ltd.uk/sg/ space/joe/)所支持。被加入到WebWork(http://www.opensymphony.com/we bwork/)版本。
4.4 SWATO(2005年)
网址是:http://swato.dev.java.net/,是一套可重用的和良好集成的Java/JavaScript库,
·服务器端Java库能被容易地配置到所有的Servlet
2.3+匹配的容器中。
·客户端JavaScript库能工作在支持HttpXMLRe
·使用JSON来在服务器端编组你的POJO数据。这样你能存取
·提供一个简单的接口来使你的JavaScript代码可以与暴
·使用web.xml中的<servlet>和<filter>
·提供了几个可帮助你快速开发web应用程序的组件(如自动完成
5 服务器端:Lisp
5.1 CL-Ajax
网址:http://cliki.net/cl-ajax,实现Javascript直接调用服务器端Lisp函数。
·如下输出函数:
(export-函数 #'my-函数)
·可以产生带有参数的Javascript代理。
·能回叫Javascript函数或者DOM对象。
·可以被集成进SAJAX。
·开源(定制,非常灵活,许可)。由[Richard
Newman](http://www.holygoat.co.uk/)所维护。
6 服务器端:.NET
6.1 WebORB for.NET(自从8月2005年)
网址:http://www.themidnightcoders.c om/weborb/aboutWeborb.htm,是一个平台,用于开发AJAX和基于Flash的胖客户端应用程
Web服务。(在线举例(http://www.themidnightcoders.c om/examples))
·WebORB包括一个客户端库,名叫Rich Client
System(http://www.themidnightcoders.c om/rcs/index.htm)。Rich Client
System提供一简单的在线api以绑定到和调用任何.NET
Web服务上的任何方法。
·支持同步和异步的方法调用
·并不要求在服务器端代码上作任何修改,不需要定制方法属性,特
·同步调用返回来自于该调用的数据(不需要回叫)。异步的调用依
·任何服务器端方法能被同步地或者异步地调用。
·客户应用程序能向服务器对象请求指定的活动方式。结果,对象能
·提供一个特定API来处理数据库查询结果-服务器代码能返回D
JavaScript对象来显示这个结果。该对象提供一个方法以
·支持数据页面技术。客户端应用程序能检索页面中的数据。
·支持所有的服务器端参数类型并返回值-原型,字符串,复合类型
·共有两种版本可用的:标准版(自由)和专业版(商业许可)
6.2 Ajax.NET(自从3月2005年)
网址是:http://ajax.schwarz-interactiv e.de/,是一个库,实现从Javascript到服务器端.NET的存取
·象SAJAX,能把Javascript中的调用传递到.NE
·能存取来自于JavaScript的会话数据。
·缓存结果
·自由使用,可用的源码,未指定使用许可。由Michael
Schwarz(http://weblogs.asp.net/mschwar z/)所维护。
·不允许改变源代码,用属性标记方法
·完整的类支持以返回客户端JavaScript值
·使用HtmlControls来进行输入和返回值
·可以返回数据表,数据集,数据视图,数组和集合
7 服务器端:PHP
7.1 AjaxAC(自从2005年4月)
网址是:http://ajax.zervaas.com.au/,用单个的PHP类封装了完整的应用程序。
·所有的应用程序代码是自包含在单个类中(附加另外一些Java
·干净利索地调用PHP文件/HTML页面。只需创建应用程序类
·容易地处理JavaScript事件的内嵌功能
·创建子需要并处理它们的内嵌功能
·允许定制的配置值,因此某些单元能在运行时间设置
·无凌乱的JavaScript代码夹杂在调用HTML的代码中
·由于以上两个原因容易和模板引擎集成到一起
·容易钩到(hook in
to)已有的PHP类或者MySQL数据库以返回来自于子需求的
·能够容易地进一步生成JavaScript对象的可扩展的窗口
背景:
·开源许可(Apache2.0)。由Zervaas
Enterprises(http://ajax.zervaas.com.au/)支持
7.2 JPSpan
网址是:http://jpspan.sourceforge.net/ wiki/doku.php,直接把Javascript调用传递到PHP函数。
·进行了严肃的单元测试。
·开源许可(PHP)。
7.3 XAJAX
网址是:http://xajax.sf.net,直接把Javascript调用传递到PHP函数。
·使用Javascript代理来调用PHP脚本。
·开源。由J.Max Wilson所创。
8 服务器端:Ruby
Ruby On
Rails(http://www.rubyonrails.org/)是一个通常的强力支持Ajax的web框架:
·当Ajax出现的时候Rails还处于其发展的早期,因此Aj
·生成浏览器中大多数/全部的窗口小组件和动画的Javascr
·支持服务器端调用。
·调度支持。
·开源许可。