·線程安全的XMLHttpRequest實(shí)現(xiàn)。
·針對(duì)XML文檔的包裝器,以便你能夠創(chuàng)建更具可讀性的代碼:
var node = doc.groceries.frozen[0].pizza[0].size;</pre>
代替手工的導(dǎo)航:
var node = doc.documentElement.firstChild.firstChild.getAttribute("size");</pre>
·開(kāi)源許可。由Weaver(http://circaware.com|Brock)維護(hù)。
2.6 LibXMLHttpRequest(發(fā)行于2003年6月)
libXmlRequest(http://www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXmlRequest.html),是XMLHttpRequest的一個(gè)瘦包裝器。
·getXML()和postXML()方法。
·XMLHttpRequest對(duì)象池支持。
·Response緩沖。
·可用源碼(明顯),但是受標(biāo)準(zhǔn)版權(quán)的保護(hù),由Stephen W.Coate(http://www.whitefrost.com/index.jsp)所維護(hù)。
2.7 RSLite(x)
網(wǎng)站是:http://www.ashleyit.com/rs/main.htm,是一個(gè)針對(duì)XMLHttpRequest的瘦包裝器。
·一個(gè)簡(jiǎn)單的組件,作為Brent Ashley的更全面的遠(yuǎn)程腳本工作(參見(jiàn)Javascript遠(yuǎn)程腳本-JSRS在多語(yǔ)言服務(wù)器端)的一部分發(fā)行。
2.8 Sack(在開(kāi)發(fā)中,自從2005年5月)
網(wǎng)站是:http://twilightuniverse.com/2005/05/sack-of-ajax/,是一個(gè)針對(duì)XMLHttpRequest的瘦包裝器。
·調(diào)用者能指定回叫函數(shù)或者回叫DOM對(duì)象。借助于回叫DOM,應(yīng)答文本直接被推入到DOM中
2.9 Sarissa(發(fā)行于2月,2003年)
網(wǎng)站是:http://sarissa.sf.net,是一種Javascript. API,它封裝了在瀏覽器端可以獨(dú)立調(diào)用XML的功能。
·可移植的XMLHttpRequest創(chuàng)建
·可移植的XPath查詢
·可移植的DOM操作
·可移植的XSLT
·可移植的XML串行化
·開(kāi)源(GPL2.0和LGPL2.1)。來(lái)自多方面貢獻(xiàn)者。
2.10 XHConn(發(fā)行于自從4月,2005年)
網(wǎng)站是:http://xkr.us/code/javascript/XHConn/,是一個(gè)對(duì)XMLHttpRequest的瘦包裝器。
·例如
new XHConn().connect("mypage.php","POST","foo=bar&baz=qux",fnWhenDone);
·開(kāi)源許可。由Brad Fults所維護(hù)。
3 服務(wù)器端:多種語(yǔ)言
3.1 跨平臺(tái)異步的接口工具箱(5月2005年)
CPAINT:http://cpaint.sourceforge.net/,是一真正的支持PHP和ASP/Vbscript的Ajax實(shí)現(xiàn)和JSRS(JavaScript遠(yuǎn)程腳本)實(shí)現(xiàn)。CPAINT提供給你需求的代碼在后臺(tái)實(shí)現(xiàn)AJAX和JSRS,而返回的數(shù)據(jù)以JavaScript形式在前臺(tái)操作,格式化和顯示。這允許你創(chuàng)建能提供接近實(shí)時(shí)的反饋給用戶的web應(yīng)用程序。
·支持PHP&ASP
·針對(duì)所有函數(shù)的一致的JavaScript文件
·支持遠(yuǎn)程腳本和XML
·支持本地和遠(yuǎn)程函數(shù)
·單個(gè)或者多個(gè)XMLHTTP對(duì)象
·以文本或者JavaScript. XML/DOM文檔對(duì)象方式返回后臺(tái)數(shù)據(jù)
·能支持POST和GET請(qǐng)求
·后臺(tái)代理函數(shù)來(lái)訪問(wèn)遠(yuǎn)程函數(shù)和數(shù)據(jù)
·在所有的主要瀏覽器上測(cè)試過(guò)
·在GNU GPL&LGPL保護(hù)下發(fā)行
3.2 SAJAX(可用,但是不是1.0版本;自從3月2005年)
網(wǎng)站是:http://www.modernmethod.com/sajax/,直接把調(diào)用從Javascript發(fā)送到你的服務(wù)器端語(yǔ)言并再次回返。例如,調(diào)用一個(gè)javascript方法x_calculateBudget(),將先到達(dá)服務(wù)器和調(diào)用一個(gè)Java calculateBudget()方法,然后以javascript方式把值返回到x_calculateBudget_cb()。
·便利從Javascript代理函數(shù)到后臺(tái)操作的映射。
·能夠代理對(duì)眾多服務(wù)器端平臺(tái)(ASP/ColdFusion/Io/Lua/Perl/PHP/Python/Ruby)的調(diào)用。
·開(kāi)源許可。來(lái)自多方面貢獻(xiàn)者。
3.3 Javascipt對(duì)象標(biāo)志(JSON)和JSON-RPC
JSON(http://www.json-rpc.org/)是一種遠(yuǎn)程過(guò)程協(xié)議,類(lèi)似于XML-RPC,強(qiáng)有力支持Javascript客戶。
·實(shí)現(xiàn)多服務(wù)器端平臺(tái)(http://www.json-rpc.org/impl.xhtml):Java,Python,Ruby,Perl。
·針對(duì)每種平臺(tái)有獨(dú)立的打包和許可,如JSON-RPC-Java(http://oss.metaparadigm.com/jsonrpc/)。
3.4 Javascript遠(yuǎn)程腳本(JSRS)(自從2000年)
網(wǎng)址是:http://www.ashleyit.com/rs/jsrs/test.htm,直接把調(diào)用從Javascript發(fā)送到你的服務(wù)器端語(yǔ)言并再次回返。
·知名的瀏覽器:IE4+,NS4.x,NS6.x,Mozilla,Opera7和Galeon。
·服務(wù)器端支持:ASP,ColdFusion,PerlCGI,PHP,Python和JSP(servlet)。
·開(kāi)源許可。由Brent Ashley(http://www.ashleyit.com/)提供支持。
4 服務(wù)器端:Java
注意:許多現(xiàn)有的框架最近正在添加Java支持(例如struts),我將在后面指出。
4.1 WebORB for Java(自從2005年8月)
網(wǎng)址:http://www.themidnightcoders.com/weborb/aboutWeborb.htm,是一個(gè)平臺(tái),支持開(kāi)發(fā)AJAX和基于Flash的胖客戶端應(yīng)用程序,并可以把它們與Java對(duì)象和XML Web服務(wù)相系起來(lái)。在線舉例(http://www.themidnightcoders.com/examples)
·WebORB包括一個(gè)稱(chēng)作豐富的客戶系統(tǒng)(http://www.themidnightcoders.com/rcs/index.htm)的客戶端庫(kù)。該豐富的客戶系統(tǒng)提供一簡(jiǎn)單的在線api來(lái)綁定到并調(diào)用任何Java對(duì)象,XML Web服務(wù)或者EJB上的方法。
·支持同步的和異步的方法調(diào)用。
·并不要求在服務(wù)器端代碼上作任何修改,不需要定制方法屬性,特別的簽名或者參數(shù)類(lèi)型。★不要求設(shè)計(jì)時(shí)生成代理。
·同步調(diào)用返回來(lái)自于該調(diào)用(不需要回叫)的數(shù)據(jù)。異步的調(diào)用依賴于一個(gè)回叫實(shí)現(xiàn)。
·任何服務(wù)器端方法能被同步地或者異步地調(diào)用。
·客戶應(yīng)用程序能向服務(wù)器對(duì)象請(qǐng)求指定的活動(dòng)方式。結(jié)果,對(duì)象能被輕易地創(chuàng)建而不需任何特殊的編程。
·提供一個(gè)特定API來(lái)處理數(shù)據(jù)庫(kù)查詢結(jié)果-服務(wù)器代碼能返回Data集合或者Data表,而客戶端以一個(gè)特殊RecordSet JavaScript對(duì)象來(lái)顯示這個(gè)結(jié)果。該對(duì)象提供一個(gè)方法以檢索列名和行數(shù)據(jù)。
·支持?jǐn)?shù)據(jù)分頁(yè)技術(shù)。客戶應(yīng)用程序能檢索頁(yè)面中的數(shù)據(jù)。
·支持所有的服務(wù)器端參數(shù)類(lèi)型并返回值-原型,字符串,復(fù)合類(lèi)型,數(shù)組,本機(jī).net集合,遠(yuǎn)程參考。
·共有兩種版本可用:標(biāo)準(zhǔn)版(自由)和專(zhuān)業(yè)版(商業(yè)許可)
4.2 Echo 2(自從3月2005年)
網(wǎng)址是:http://www.nextapp.com/products/echo2/,允許你用純Java代碼編寫(xiě)Ajax應(yīng)用軟件(范例(http://demo.nextapp.com/InteractiveTest/ia))。
自動(dòng)地生成HTML和Javascript。
·協(xié)調(diào)瀏覽器和服務(wù)器之間的消息。消息形式為XML。
·如果需要,可以手工編寫(xiě)定制的Javascript部件。
·開(kāi)源許可(Mozilla公共許可或者GNU LGPL)。源于Next App,Inc.(http://www.nextapp.com/)。
4.3 Direct Web Remoting (DWR)(2005年)
網(wǎng)址是:http://www.getahead.ltd.uk/dwr/,是一個(gè)框架,用于直接從Javascript代碼中調(diào)用Java方法。
·象SAJAX,能把Javascript中的調(diào)用傳遞到Java方法,并返回到Javascript回叫。
·能與任何web框架(Struts,Tapestry,等等)一起使用。
·開(kāi)源許可(Apache(http://www.apache.org/LICENSE.txt))。由Joe Walker(http://www.getahead.ltd.uk/sg/space/joe/)所支持。被加入到WebWork(http://www.opensymphony.com/webwork/)版本。
4.4 SWATO(2005年)
網(wǎng)址是:http://swato.dev.java.net/,是一套可重用的和良好集成的Java/JavaScript庫(kù),它實(shí)現(xiàn)了一種更容易的方式來(lái)改變你的web應(yīng)用程序的交互,它是通過(guò)AJAX方式實(shí)現(xiàn)。
·服務(wù)器端Java庫(kù)能被容易地配置到所有的Servlet 2.3+匹配的容器中。
·客戶端JavaScript庫(kù)能工作在支持HttpXMLRequest的各種瀏覽器中。
·使用JSON來(lái)在服務(wù)器端編組你的POJO數(shù)據(jù)。這樣你能存取在任何JavaScript環(huán)境(HTML,XUL,SVG)中的遠(yuǎn)程數(shù)據(jù),這種存取可以容易地通過(guò)硬編碼或者與某種成熟的JavaScript庫(kù)集成來(lái)實(shí)現(xiàn)。
·提供一個(gè)簡(jiǎn)單的接口來(lái)使你的JavaScript代碼可以與暴露在客戶端的遠(yuǎn)程POJO交互(RPC等)。
·使用web.xml中的<servlet>和<filter>的容易且靈活的配置,并能(但不是依賴)與Spring集成到一起。
·提供了幾個(gè)可幫助你快速開(kāi)發(fā)web應(yīng)用程序的組件(如自動(dòng)完成的文本框,在線表單,在線列表,等等)。
5 服務(wù)器端:Lisp
5.1 CL-Ajax
網(wǎng)址:http://cliki.net/cl-ajax,實(shí)現(xiàn)Javascript直接調(diào)用服務(wù)器端Lisp函數(shù)。
·如下輸出函數(shù):
(export-函數(shù) #’my-函數(shù))
·可以產(chǎn)生帶有參數(shù)的Javascript代理。
·能回叫Javascript函數(shù)或者DOM對(duì)象。
·可以被集成進(jìn)SAJAX。
·開(kāi)源(定制,非常靈活,許可)。由[Richard Newman](http://www.holygoat.co.uk/)所維護(hù)。
6 服務(wù)器端:.NET
6.1 WebORB for.NET(自從8月2005年)
網(wǎng)址:http://www.themidnightcoders.com/weborb/aboutWeborb.htm,是一個(gè)平臺(tái),用于開(kāi)發(fā)AJAX和基于Flash的胖客戶端應(yīng)用程序,并能把它們連接到.NET對(duì)象和XML Web服務(wù)。(在線舉例(http://www.themidnightcoders.com/examples))
·WebORB包括一個(gè)客戶端庫(kù),名叫Rich Client System(http://www.themidnightcoders.com/rcs/index.htm)。Rich Client System提供一簡(jiǎn)單的在線api以綁定到和調(diào)用任何.NET對(duì)象或者XML Web服務(wù)上的任何方法。
·支持同步和異步的方法調(diào)用
·并不要求在服務(wù)器端代碼上作任何修改,不需要定制方法屬性,特別的簽名或者參數(shù)類(lèi)型。**不要求設(shè)計(jì)時(shí)代理生成。
·同步調(diào)用返回來(lái)自于該調(diào)用的數(shù)據(jù)(不需要回叫)。異步的調(diào)用依賴于一個(gè)回叫實(shí)現(xiàn)。
·任何服務(wù)器端方法能被同步地或者異步地調(diào)用。
·客戶應(yīng)用程序能向服務(wù)器對(duì)象請(qǐng)求指定的活動(dòng)方式。結(jié)果,對(duì)象能被輕易地創(chuàng)建而不需任何特殊的編程。
·提供一個(gè)特定API來(lái)處理數(shù)據(jù)庫(kù)查詢結(jié)果-服務(wù)器代碼能返回DataSet或者DataTable,而客戶端以一個(gè)特殊RecordSet JavaScript對(duì)象來(lái)顯示這個(gè)結(jié)果。該對(duì)象提供一個(gè)方法以檢索列名和行數(shù)據(jù)
·支持?jǐn)?shù)據(jù)頁(yè)面技術(shù)。客戶端應(yīng)用程序能檢索頁(yè)面中的數(shù)據(jù)。
·支持所有的服務(wù)器端參數(shù)類(lèi)型并返回值-原型,字符串,復(fù)合類(lèi)型,數(shù)組,本機(jī).net集合,遠(yuǎn)程參考
·共有兩種版本可用的:標(biāo)準(zhǔn)版(自由)和專(zhuān)業(yè)版(商業(yè)許可)
6.2 Ajax.NET(自從3月2005年)
網(wǎng)址是:http://ajax.schwarz-interactive.de/,是一個(gè)庫(kù),實(shí)現(xiàn)從Javascript到服務(wù)器端.NET的存取。
·象SAJAX,能把Javascript中的調(diào)用傳遞到.NET方法,并返回到Javascript回叫。
·能存取來(lái)自于JavaScript的會(huì)話數(shù)據(jù)。
·緩存結(jié)果
·自由使用,可用的源碼,未指定使用許可。由Michael Schwarz(http://weblogs.asp.net/mschwarz/)所維護(hù)。
·不允許改變?cè)创a,用屬性標(biāo)記方法
·完整的類(lèi)支持以返回客戶端JavaScript值
·使用HtmlControls來(lái)進(jìn)行輸入和返回值
·可以返回?cái)?shù)據(jù)表,數(shù)據(jù)集,數(shù)據(jù)視圖,數(shù)組和集合
7 服務(wù)器端:PHP
7.1 AjaxAC(自從2005年4月)
網(wǎng)址是:http://ajax.zervaas.com.au/,用單個(gè)的PHP類(lèi)封裝了完整的應(yīng)用程序。
·所有的應(yīng)用程序代碼是自包含在單個(gè)類(lèi)中(附加另外一些JavaScript庫(kù))
·干凈利索地調(diào)用PHP文件/HTML頁(yè)面。只需創(chuàng)建應(yīng)用程序類(lèi),然后參照應(yīng)用程序JavaScript和依附任何需要的HTML元素到該應(yīng)用程序。
·容易地處理JavaScript事件的內(nèi)嵌功能
·創(chuàng)建子需要并處理它們的內(nèi)嵌功能
·允許定制的配置值,因此某些單元能在運(yùn)行時(shí)間設(shè)置
·無(wú)凌亂的JavaScript代碼夾雜在調(diào)用HTML的代碼中-所有的事件是被動(dòng)態(tài)依附的
·由于以上兩個(gè)原因容易和模板引擎集成到一起
·容易鉤到(hook in to)已有的PHP類(lèi)或者M(jìn)ySQL數(shù)據(jù)庫(kù)以返回來(lái)自于子需求的數(shù)據(jù)
·能夠容易地進(jìn)一步生成JavaScript對(duì)象的可擴(kuò)展的窗口小組件結(jié)構(gòu)(但是還需要做一些工作)
背景:
·開(kāi)源許可(Apache2.0)。由Zervaas Enterprises(http://ajax.zervaas.com.au/)支持
7.2 JPSpan
網(wǎng)址是:http://jpspan.sourceforge.net/wiki/doku.php,直接把Javascript調(diào)用傳遞到PHP函數(shù)。
·進(jìn)行了嚴(yán)肅的單元測(cè)試。
·開(kāi)源許可(PHP)。
7.3 XAJAX
網(wǎng)址是:http://xajax.sf.net,直接把Javascript調(diào)用傳遞到PHP函數(shù)。
·使用Javascript代理來(lái)調(diào)用PHP腳本。
·開(kāi)源。由J.Max Wilson所創(chuàng)。
8 服務(wù)器端:Ruby
Ruby On Rails(http://www.rubyonrails.org/)是一個(gè)通常的強(qiáng)力支持Ajax的web框架:
·當(dāng)Ajax出現(xiàn)的時(shí)候Rails還處于其發(fā)展的早期,因此Ajax可能逐漸成為Rails框架的核心。
·生成瀏覽器中大多數(shù)/全部的窗口小組件和動(dòng)畫(huà)的Javascript腳本。
·支持服務(wù)器端調(diào)用。
·調(diào)度支持。
·開(kāi)源許可。