览器端框架被划分成两大c:
·应用E序框架Q提供浏览器的功能,但是总包括H口部件抽象和另外的部件而出名,其功能主要围l桌面GUI框架?/P>
·基本l构框架Q提供基本的道和可UL的浏览器抽象Q让开?/FONT>者去创徏内容。典型的功能Q?/P>
* 针对XMLHttpRequest的包装器以封装浏览器-服务器的交互?所有的框架都提供这一功能)?/P>
* XML操作和查询?/P>
* Ҏ来自XMLHttpRequest的应{执行DOM操作?/P>
* 在一些情况中Q与另外的浏览器端技术如Flash(和潜在的Java applets)集成在一赗?/P>
而服务器端框枉常以下面两U方式工?管它们在这里根据语a的不同进行了分类)Q?/P>
·HTML/JS生成Q服务器提供完整的HTML/Javascript代码生成和浏览器-服务器协调,l果是只有浏览器端编码可以被定制?/P>
·q程调用QJavascript调用直接被\由到服务器端功能(例如JavaҎ)q返回到Javascript回叫处理器;或者Javascript调用服务器以提取信息Q例如会话细节,数据库查询等?/P>
·UJavascriptQ应用程序框?/P>
1.1 Bindows(自从2003q?
|址是:http://www.bindows.netQBindows是一个Y件开发包(SDK)Q它Q通过强力联合DHTMLQJavaScriptQCSS和XML{技术,能生成高度交互的互联|?/FONT>应用E序-成ؓC的桌面应用程序的强有力对手。Bindows应用E序不要求下载和也不需要在用户端安?仅要求有一个浏览器(也不需要JavaQFlash或者ActiveX)。Bindows有可能领导面向对象开发的AJAX应用E序的^台?/P>
·它是商业化的Q用来自于MB的技?总部位于GA USAQ主要开发中心在瑞典Q成立于2002q??/P>
Bindows框架提供l你Q?/P>
·Zcȝ面向对象的API
·一套完整的H口pȝQ提供宽范围的窗口小部g支持Q包括菜单、表单、格子、滑动条、量E,甚至更多
·用于开发zero-footprint SOA客户端应用程序的领先的工L
·本机的XMLQSOAP和XML-RPC支持
·单用户到企业U的支持
·内徏的对AJAX的支?/P>
Bindows开发环境:
·支持企业U规模的工程开?/P>
·跨浏览器Q跨q_支持
·服务器独立结?/P>
·与新的和现有资源的互操作?/P>
·一致性开发方法学
1.2 BackBase(自从2003q?
|址是:http://www.backbase.comQ是一个全面的览器端框架Q支持丰富的览器功能以及与.NET和Java的集成?/P>
·商业化,来自于Backbase B.V(总部在AmsterdamQ成立于2003q??/P>
1.3 DOJO(开发中;自从2004q??
|址是:http://dojotoolkit.org/Q提供全面窗口小lg和浏览器-服务器消息支持?/P>
·为创建定制的JavascriptH口组件提供框架支持?
·预置的窗口小lg库?/P>
·览?服务器消息支?XMLHttpRequest和另外的机制?/P>
·支持览器中的URL操纵功能?/P>
·开源许?学术自由许可2.1(http://opensource.org/licenses/afl-2.1.php))Q由JotSpot(http://www.jot.com/)的Alex Russell(http://alex.dojotoolkit.org/)所领导?/P>
1.4 Open Rico(开发中;自从2005q??Z早期的私有框?
|址是:http://openrico.org/demos.pageQ是一多用途框Ӟ支持Ajax基础l构和用户交互?/P>
·一个XMLHttpRequest应答能被路由C个或者更多回叫操作,DOM对象Q或者Javascript对象?/P>
·Ҏ鼠标拖动支持?/P>
·Ajax动画Q例如羃攑֒变换?/P>
·"行ؓ"-实质上是H口组件库?/P>
·使用指南(http://www.mirimar.net/mailbrowser/)Q由RussMirimar的Yonah所提供
·开源。源于Sabre航空公司解决ҎQ由Bill Scott(http://looksgoodworkswell.blogspot.com)QDarren James及另外一些h所支持?/P>
1.5 qooxdoo(开发中;自从2005q??
|址是:http://qooxdoo.sourceforge.net/Q是另一个雄心勃勃的框架Q提供宽范围的UI支持和正在开发中的基l构Ҏ?/P>
·基础l构Q?/P>
* DOM和事?焦点理的可UL的抽象?/P>
* 调试支持?/P>
* 易于旉调度的TimercR?
* Getter/Setter支持?/P>
·UIQ?/P>
* H口组件框架和预置的窗口小lg库?/P>
* 布局理器?/P>
* 囑փ~冲和可UL的PNG透明性?/P>
·开?LGPL)。来自多斚w的A献者?/P>
1.6 Tibet(开发中;自从2005q??
|址是:http://www.technicalpursuit.com/Q目的是提供高度可移植的和全面的Javascript APIQ结果是Q可能自动生成大量的客户端代码。自U是"企业UAjax"?/P>
·q程脚本q行在XMLHttpRequest包装之上-通过协调调用l果支持工作管理,例如应答可以发生在只有当两个分离的调用返回时?/P>
·URI支持?/P>
·所有的HTTPҎ-不仅?GET"?POST"?/P>
·低的协?File://和WebDav以及HTTP?/P>
·Web服务调用-SOAPQXML-RPCQ等{?/P>
·预置的针?A target=_blank>Google APIQAmazon API{等服务的支持?/P>
·由高UJavascript对象l成一个巨大的库?/P>
·许多XML操作?/P>
·IDE和开发工兗?/P>
·开源许?昄l过OSI认证Q但是细节不??
2 UJavascriptQ基l构框架
2.1 AjaxCaller(Alpha版本;自从5?005q?
|址是:http://ajaxify.com/run/testAjaxCaller/Q是一基本的线E安全的XMLHttpRequest包装器,主要针对Ajax新手Q仍处于原始的alpha开?/FONT>阶段Q目前仅与AjaxPatterns的在U搜索范例一h包?/P>
·实现Ҏ务器的调?GET/POST/PUT/DELETE)Q用路由C个回叫操作的plain-text或者XML完成?/P>
·使用q的XMLHttpRequest对象的析构?/P>
·Response~冲(计划??/P>
·针对Ajax新手-q性能优化Q该库主要用于实现易ȝ基础代码q将提供调试支持?/P>
·开源许可。由Michael Mahemoff(http://softwareas.com)(hJohn Wehr和Richard Schwartz的一些思想)l护?/P>
2.2 Flash JavaScript集成?/P>
|址是:http://www.osflash.org/doku.php?id=flashjsQ允许JavaScript和Flash内容的集成:
·使JavaScript能够调用ActionScript功能和反q来的实现?/P>
·所有主要的数据cd能在q两U环境之间传递?/P>
·开源许可。由多个开源Flash贡献者提供支持?/P>
2.3 Google AJAXSLT(发行?005q??
|址是:http://goog-ajaxslt.sourceforge.net/Q是一个Javascript框架Q用来执行XSLT转换以及XPath查询?/P>
·建立在Google地图工作基础之上?/P>
·开源许?BSD)。由一家创新搜索方案公司支持,自称?Google"?/P>
2.4 HTMLHttpRequest(Beta版;始于2005q?
HtmlHttpRequest(http://www.twinhelix.com/javascript/htmlhttprequest/)Q它使用了XMLHttpRequest和Iframes以改q兼Ҏ?/P>
·试qƈ能工作在:IE6/WinQIE5.5/WinQIE5/WinQIE4/WinQMozilla/WinQOpera7/WinQSafari/MacQIE5/Mac?/P>
·未测试,可能能工作在QIE4/MacQMozilla/MacQOpera/OtherQKonqueror/Linux。你正在使用q些之一吗?作者正在请求兼Ҏ信息?/P>
·开源许?LGPL)。由Twin Helix Designs(http://www.twinhelix.com/)的Angus Turnbulll护?/P>
2.5 交互?A target=_blank>|站框架(自从2005q??
交互式网站框?http://sourceforge.net/projects/iwf/Q是一个项目,目的是从览器端对Ajax基础l构的多斚w予以支持。自描述?使用javascriptQcssQxmlQ和html来创造高度交互网站的框架。包括一个定制的针对高度可读的javascript的xml分析器。实质上Q是建立ZAJAX的网站的基础Q还有另外一些通用脚本"?/P>
·U程安全的XMLHttpRequest实现?/P>
·针对XML文档的包装器Q以便你能够创徏更具可读性的代码Q?/P>
var node = doc.groceries.frozen[0].pizza[0].size;</pre>
代替手工的导航:
var node = doc.documentElement.firstChild.firstChild.getAttribute("size");</pre>
·开源许可。由Weaver(http://circaware.com|Brock)l护?/P>
2.6 LibXMLHttpRequest(发行?003q??
libXmlRequest(http://www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXmlRequest.html)Q是XMLHttpRequest的一个瘦包装器?/P>
·getXML()和postXML()Ҏ?/P>
·XMLHttpRequest对象池支持?/P>
·Response~冲?/P>
·可用源码(明显)Q但是受标准版权的保护,由Stephen W.Coate(http://www.whitefrost.com/index.jsp)所l护?/P>
2.7 RSLite(x)
|站是:http://www.ashleyit.com/rs/main.htmQ是一个针对XMLHttpRequest的瘦包装器?/P>
·一个简单的lgQ作为Brent Ashley的更全面的远E脚本工?参见Javascriptq程脚本-JSRS在多语言服务器端)的一部分发行?/P>
2.8 Sack(在开发中Q自?005q??
|站是:http://twilightuniverse.com/2005/05/sack-of-ajax/Q是一个针对XMLHttpRequest的瘦包装器?/P>
·调用者能指定回叫函数或者回叫DOM对象。借助于回叫DOMQ应{文本直接被推入到DOM?/P>
2.9 Sarissa(发行?月,2003q?
|站是:http://sarissa.sf.netQ是一UJavascript APIQ它装了在览器端可以独立调用XML的功能?/P>
·可移植的XMLHttpRequest创徏
·可移植的XPath查询
·可移植的DOM操作
·可移植的XSLT
·可移植的XML串行?/P>
·开?GPL2.0和LGPL2.1)。来自多斚w贡献者?/P>
2.10 XHConn(发行于自?月,2005q?
|站是:http://xkr.us/code/javascript/XHConn/Q是一个对XMLHttpRequest的瘦包装器?/P>
·例如Q?/P>
new XHConn().connect("mypage.php"Q?POST"Q?foo=bar&baz=qux"QfnWhenDone);
·开源许可。由Brad Fults所l护?/P>
服务器端Q多U语a
3.1 跨^台异步的接口工具?5?005q?
CPAINTQhttp://cpaint.sourceforge.net/Q是一真正的支持PHP和ASP/Vbscript的Ajax实现和JSRS(JavaScriptq程脚本)实现。CPAINT提供l你需求的代码在后台实现AJAX和JSRSQ而返回的数据以JavaScript形式在前台操作,格式化和昄。这允许你创提供接近实时的反馈给用户的web应用E序?/P>
·支持PHP&ASP
·针对所有函数的一致的JavaScript文g
·支持q程脚本和XML
·支持本地和远E函?/P>
·单个或者多个XMLHTTP对象
·以文本或者JavaScript XML/DOM文档对象方式q回后台数据
·能支持POST和GETh
·后台代理函数来访问远E函数和数据
·在所有的主要览器上试q?/P>
·在GNU GPL&LGPL保护下发?/P>
3.2 SAJAX(可用Q但是不?.0版本;自从3?005q?
|站是:http://www.modernmethod.com/sajax/Q直接把调用从Javascript发送到你的服务器端语言q再ơ回q。例如,调用一个javascriptҎx_calculateBudget()Q将先到达服务器和调用一个Java calculateBudget()ҎQ然后以javascript方式把D回到x_calculateBudget_cb()?/P>
·便利从Javascript代理函数到后台操作的映射?/P>
·能够代理对众多服务器端^収ͼASP/ColdFusion/Io/Lua/Perl/PHP/Python/RubyQ的调用?/P>
·开源许可。来自多斚w贡献者?/P>
3.3 Javascipt对象标志(JSON)和JSON-RPC
JSON(http://www.crockford.com/JSON/index.html)Q是一?胖的自由的XML选择"Q而JSON-RPC(http://www.json-rpc.org/)是一U远E过E协议,cM于XML-RPCQ强有力支持Javascript客户?/P>
·实现多服务器端^?http://www.json-rpc.org/impl.xhtml)QJavaQPythonQRubyQPerl?/P>
·针对每种q_有独立的打包和许可,如JSON-RPC-Java(http://oss.metaparadigm.com/jsonrpc/)?/P>
3.4 Javascriptq程脚本(JSRS)(自从2000q?
|址是:http://www.ashleyit.com/rs/jsrs/test.htmQ直接把调用从Javascript发送到你的服务器端语言q再ơ回q?/P>
·知名的浏览器QIE4+QNS4.xQNS6.xQMozillaQOpera7和Galeon?/P>
·服务器端支持QASPQColdFusionQPerlCGIQPHP,Python和JSP(servlet)?/P>
·开源许可。由Brent Ashley(http://www.ashleyit.com/)提供支持?/P>
4 服务器端QJava
注意Q许多现有的框架最q正在添加Java支持(例如struts)Q我在后面指出?/P>
4.1 WebORB for Java(自从2005q??
|址Qhttp://www.themidnightcoders.com/weborb/aboutWeborb.htmQ是一个^収ͼ支持开?/FONT>AJAX和基于Flash的胖客户端应用程序,q可以把它们与Java对象和XML Web服务相系h。在UD?httpQ?/www.themidnightcoders.com/examples)
·WebORB包括一个称作丰富的客户pȝ(http://www.themidnightcoders.com/rcs/index.htm)的客L库。该丰富的客Ll提供一单的在线api来绑定到q调用Q何Java对象QXML Web服务或者EJB上的Ҏ?/P>
·支持同步的和异步的方法调用?/P>
·q不要求在服务器端代码上作Q何修改,不需要定制方法属性,特别的签名或者参数类型。★不要?A target=_blank>设计时生成代理?/P>
·同步调用q回来自于该调用(不需要回?的数据。异步的调用依赖于一个回叫实现?/P>
·M服务器端Ҏ能被同步地或者异步地调用?/P>
·客户应用E序能向服务器对象请求指定的zd方式。结果,对象能被L地创不需MҎ?A target=_blank>~程?/P>
·提供一个特定API来处理数据库查询l果-服务器代码能q回Data集合或者Data表,而客L以一个特DRecordSet JavaScript对象来显C个结果。该对象提供一个方法以索列名和行数据?/P>
·支持数据分页技术。客户应用程序能索页面中的数据?/P>
·支持所有的服务器端参数cdq返回?原型Q字W串Q复合类型,数组Q本?net集合Q远E参考?/P>
·共有两种版本可用Q标准版(自由)和专业版(商业许可)
4.2 Echo 2(自从3?005q?
|址是:http://www.nextapp.com/products/echo2/Q允怽用纯Java代码~写Ajax应用软g(范例(http://demo.nextapp.com/InteractiveTest/ia))?/P>
自动地生成HTML和Javascript?/P>
·协调览器和服务器之间的消息。消息Ş式ؓXML?/P>
·如果需要,可以手工~写定制的Javascript部g?/P>
·开源许?Mozilla公共许可或者GNU LGPL)。源于Next App,Inc.(http://www.nextapp.com/)?/P>
4.3 Direct Web Remoting (DWR)(2005q?
|址是:http://www.getahead.ltd.uk/dwr/Q是一个框Ӟ用于直接从Javascript代码中调用JavaҎ?/P>
·象SAJAXQ能把Javascript中的调用传递到JavaҎQƈq回到Javascript回叫?/P>
·能与Mweb框架QStrutsQTapestryQ等{)一起用?/P>
·开源许?Apache(http://www.apache.org/LICENSE.txt))。由Joe Walker(http://www.getahead.ltd.uk/sg/space/joe/)所支持。被加入到WebWork(http://www.opensymphony.com/webwork/)版本?/P>
4.4 SWATO(2005q?
|址是:http://swato.dev.java.net/Q是一套可重用的和良好集成的Java/JavaScript库,它实C一U更Ҏ的方式来改变你的web应用E序的交互,它是通过AJAX方式实现?/P>
·服务器端Java库能被容易地配置到所有的Servlet 2.3+匚w的容器中?/P>
·客户端JavaScript库能工作在支持HttpXMLRequest的各U浏览器中?/P>
·使用JSON来在服务器端~组你的POJO数据。这样你能存取在MJavaScript环境(HTMLQXULQSVG)中的q程数据Q这U存取可以容易地通过编码或者与某种成熟的JavaScript库集成来实现?/P>
·提供一个简单的接口来你的JavaScript代码可以与暴露在客户端的q程POJO交互(RPC{??/P>
·使用web.xml中的<servlet>?lt;filter>的容易且灉|的配|,q能(但不是依?与Spring集成C赗?/P>
·提供了几个可帮助你快速开发web应用E序的组?如自动完成的文本框,在线表单Q在U列表,{等)?/P>
5 服务器端QLisp
5.1 CL-Ajax
|址Qhttp://cliki.net/cl-ajaxQ实现Javascript直接调用服务器端Lisp函数?/P>
·如下输出函数Q?/P>
(export-函数 #’my-函数)
·可以产生带有参数的Javascript代理?/P>
·能回叫Javascript函数或者DOM对象?/P>
·可以被集成进SAJAX?/P>
·开?定制Q非常灵z,许可)。由[Richard Newman](http://www.holygoat.co.uk/)所l护?/P>
6 服务器端Q?NET
6.1 WebORB for.NET(自从8?005q?
|址Qhttp://www.themidnightcoders.com/weborb/aboutWeborb.htmQ是一个^収ͼ用于开?/FONT>AJAX和基于Flash的胖客户端应用程序,q能把它们连接到.NET对象和XML Web服务?在线举例(http://www.themidnightcoders.com/examples))
·WebORB包括一个客L库,名叫Rich Client System(http://www.themidnightcoders.com/rcs/index.htm)。Rich Client System提供一单的在线api以绑定到和调用Q?NET对象或者XML Web服务上的MҎ?/P>
·支持同步和异步的Ҏ调用
·q不要求在服务器端代码上作Q何修改,不需要定制方法属性,特别的签名或者参数类型?*不要?A target=_blank>设计时代理生成?/P>
·同步调用q回来自于该调用的数?不需要回?。异步的调用依赖于一个回叫实现?/P>
·M服务器端Ҏ能被同步地或者异步地调用?/P>
·客户应用E序能向服务器对象请求指定的zd方式。结果,对象能被L地创不需MҎ?A target=_blank>~程?/P>
·提供一个特定API来处理数据库查询l果-服务器代码能q回DataSet或者DataTableQ而客L以一个特DRecordSet JavaScript对象来显C个结果。该对象提供一个方法以索列名和行数?/P>
·支持数据面技术。客L应用E序能检索页面中的数据?/P>
·支持所有的服务器端参数cdq返回?原型Q字W串Q复合类型,数组Q本?net集合Q远E参?/P>
·共有两种版本可用的:标准?自由)和专业版(商业许可)
6.2 Ajax.NET(自从3?005q?
|址是:http://ajax.schwarz-interactive.de/Q是一个库Q实CJavascript到服务器?NET的存取?/P>
·象SAJAXQ能把Javascript中的调用传递到.NETҎQƈq回到Javascript回叫?/P>
·能存取来自于JavaScript的会话数据?/P>
·~存l果
·自由使用Q可用的源码Q未指定使用许可。由Michael Schwarz(http://weblogs.asp.net/mschwarz/)所l护?/P>
·不允许改变源代码Q用属性标记方?/P>
·完整的类支持以返回客LJavaScript?/P>
·使用HtmlControls来进行输入和q回?/P>
·可以q回数据表,数据集,数据视图Q数l和集合
7 服务器端QPHP
7.1 AjaxAC(自从2005q??
|址是:http://ajax.zervaas.com.au/Q用单个的PHPcd装了完整的应用程序?/P>
·所有的应用E序代码是自包含在单个类?附加另外一些JavaScript?
·q净利烦地调用PHP文g/HTML面。只需创徏应用E序c,然后参照应用E序JavaScript和依附Q何需要的HTML元素到该应用E序?
·Ҏ地处理JavaScript事g的内嵌功?/P>
·创徏子需要ƈ处理它们的内嵌功?/P>
·允许定制的配||因此某些单元能在q行旉讄
·无凌qJavaScript代码Ҏ在调用HTML的代码中-所有的事g是被动态依附的
·׃以上两个原因Ҏ和模板引擎集成到一?/P>
·Ҏ钩到Qhook in toQ已有的PHPcL者MySQL数据库以q回来自于子需求的数据
·能够Ҏ地进一步生成JavaScript对象的可扩展的窗口小lgl构(但是q需要做一些工?
背景Q?/P>
·开源许?Apache2.0)。由Zervaas Enterprises(http://ajax.zervaas.com.au/)支持
7.2 JPSpan
|址是:http://jpspan.sourceforge.net/wiki/doku.phpQ直接把Javascript调用传递到PHP函数?/P>
·q行了严肃的单元试?/P>
·开源许?PHP)?/P>
7.3 XAJAX
|址是:http://xajax.sf.netQ直接把Javascript调用传递到PHP函数?/P>
·使用Javascript代理来调用PHP脚本?/P>
·开源。由J.Max Wilson所创?/P>
8 服务器端QRuby
Ruby On Rails(http://www.rubyonrails.org/)是一个通常的强力支持Ajax的web框架Q?/P>
·当Ajax出现的时候Railsq处于其发展的早期,因此Ajax可能逐渐成ؓRails框架的核心?/P>
·生成览器中大多?全部的窗口小lg和动ȝJavascript脚本?/P>
·支持服务器端调用?/P>
·调度支持?/P>
·开源许可?/P>
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=542157

]]>