基於Ajax的應用程式架構匯總(2)

來源:互聯網
上載者:User
ajax|程式|架構 •例如

new XHConn().connect("mypage.php","POST","foo=bar&baz=qux",fnWhenDone);

•開源許可。由Brad Fults所維護。
3 伺服器端:多種語言


3.1 跨平台非同步介面工具箱(5月2005年)

CPAINT: http://cpaint.sourceforge.net/,是一真正的支援PHP和ASP/Vbscript的Ajax實現和JSRS(JavaScript遠程指令碼)實現。CPAINT提供給你需求的代碼在後台實現AJAX和JSRS,而返回的資料以JavaScript形式在前台操作,格式化和顯示。這允許你建立能提供接近即時的反饋給使用者的web應用程式。

•支援PHP&ASP

•針對所有函數的一致的JavaScript檔案

•支援遠程指令碼和XML

•支援本地和遠程函數

•單個或者多個XMLHTTP對象

•以文本或者JavaScript XML/DOM文檔對象方式返回後台資料

•能支援POST和GET請求

•後台代理函數來訪問遠程函數和資料

•在所有的主要瀏覽器上測試過

•在GNU GPL&LGPL保護下發行

3.2 SAJAX(可用,但是不是1.0版本;自從3月2005年)

網站是: http://www.modernmethod.com/sajax/,直接把調用從Javascript發送到你的伺服器端語言並再次回返。例如,調用一個javascript方法x_calculateBudget(),將先到達伺服器和調用一個Java calculateBudget()方法,然後以javascript方式把值返回到x_calculateBudget_cb()。

•便利從Javascript代理函數到後台操作的映射。

•能夠代理對眾多伺服器端平台(ASP/ColdFusion/Io/Lua/Perl/PHP/Python/Ruby)的調用。

•開源許可。來自多方面貢獻者。

3.3 Javascipt對象標誌(JSON)和JSON-RPC

JSON(http://www.crockford.com/JSON/index.html),是一個"胖的自由的XML選擇",而JSON-RPC(http://www.json-rpc.org/)是一種遠程過程協議,類似於XML-RPC,強有力支援Javascript客戶。

•實現多伺服器端平台(http://www.json-rpc.org/impl.xhtml):Java,Python,Ruby,Perl。

•針對每種平台有獨立的打包和許可,如JSON-RPC-Java(http://oss.metaparadigm.com/jsonrpc/)。

3.4 Javascript遠程指令碼(JSRS)(自從2000年)

網址是:http://www.ashleyit.com/rs/jsrs/test.htm,直接把調用從Javascript發送到你的伺服器端語言並再次回返。

•知名的瀏覽器:IE4+,NS4.x,NS6.x,Mozilla,Opera7和Galeon。

•伺服器端支援:ASP,ColdFusion,PerlCGI,PHP,Python和JSP(servlet)。

•開源許可。由Brent Ashley(http://www.ashleyit.com/)提供支援。

4 伺服器端:Java



注意:許多現有的架構最近正在添加Java支援(例如struts),我將在後面指出。

4.1 WebORB for Java(自從2005年8月)

網址:http://www.themidnightcoders.com/weborb/aboutWeborb.htm,是一個平台,支援開發AJAX和基於Flash的胖用戶端應用程式,並可以把它們與Java對象和XML Web服務相系起來。線上舉例(http://www.themidnightcoders.com/examples)

•WebORB包括一個稱作豐富的客戶系統(http://www.themidnightcoders.com/rcs/index.htm)的用戶端庫。該豐富的客戶系統提供一簡單的線上api來綁定到並調用任何Java對象,XML Web服務或者EJB上的方法。

•支援同步的和非同步方法調用。

•並不要求在伺服器端代碼上作任何修改,不需要定製方法屬性,特別的簽名或者參數類型。★不要求設計時組建代理程式。

•同步調用返回來自於該調用(不需要回叫)的資料。非同步調用依賴於一個回叫實現。

•任何伺服器端方法能被同步地或者非同步地調用。

•客戶應用程式能向伺服器對象請求指定的活動方式。結果,對象能被輕易地建立而不需任何特殊的編程。

•提供一個特定API來處理資料庫查詢結果-伺服器代碼能返回Data集合或者Data表,而用戶端以一個特殊RecordSet JavaScript對象來顯示這個結果。該對象提供一個方法以檢索列名和行資料。

•支援資料分頁技術。客戶應用程式能檢索頁面中的資料。

•支援所有的伺服器端參數類型並傳回值-原型,字串,複合類型,數組,本機.net集合,遠程參考。

•共有兩種版本可用:標準版(自由)和專業版(商業許可)

4.2 Echo 2(自從3月2005年)

網址是:http://www.nextapp.com/products/echo2/,允許你用純Java代碼編寫Ajax應用軟體(範例(http://demo.nextapp.com/InteractiveTest/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中的調用傳遞到Java方法,並返回到Javascript回叫。

•能與任何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/webwork/)版本。

4.4 SWATO(2005年)

網址是:http://swato.dev.java.net/,是一套可重用的和良好整合的Java/JavaScript庫,它實現了一種更容易的方式來改變你的web應用程式的互動,它是通過AJAX方式實現。

•伺服器端Java庫能被容易地配置到所有的Servlet 2.3+匹配的容器中。

•用戶端JavaScript庫能工作在支援HttpXMLRequest的各種瀏覽器中。

•使用JSON來在伺服器端編組你的POJO資料。這樣你能存取在任何JavaScript環境(HTML,XUL,SVG)中的遠端資料,這種存取可以容易地通過寫入程式碼或者與某種成熟的JavaScript庫整合來實現。

•提供一個簡單的介面來使你的JavaScript代碼可以與暴露在用戶端的遠程POJO互動(RPC等)。

•使用web.xml中的和的容易且靈活的配置,並能(但不是依賴)與Spring整合到一起。

•提供了幾個可協助你快速開發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.com/weborb/aboutWeborb.htm,是一個平台,用於開發AJAX和基於Flash的胖用戶端應用程式,並能把它們串連到.NET對象和XML Web服務。(線上舉例(http://www.themidnightcoders.com/examples))

•WebORB包括一個用戶端庫,名叫Rich Client System(http://www.themidnightcoders.com/rcs/index.htm)。Rich Client System提供一簡單的線上api以綁定到和調用任何.NET對象或者XML Web服務上的任何方法。

•支援同步和非同步方法調用

•並不要求在伺服器端代碼上作任何修改,不需要定製方法屬性,特別的簽名或者參數類型。**不要求設計時代理人產生。

•同步調用返回來自於該調用的資料(不需要回叫)。非同步調用依賴於一個回叫實現。

•任何伺服器端方法能被同步地或者非同步地調用。

•客戶應用程式能向伺服器對象請求指定的活動方式。結果,對象能被輕易地建立而不需任何特殊的編程。

•提供一個特定API來處理資料庫查詢結果-伺服器代碼能返回DataSet或者DataTable,而用戶端以一個特殊RecordSet JavaScript對象來顯示這個結果。該對象提供一個方法以檢索列名和行資料

•支援資料頁面技術。用戶端應用程式能檢索頁面中的資料。

•支援所有的伺服器端參數類型並傳回值-原型,字串,複合類型,數組,本機.net集合,遠程參考

•共有兩種版本可用的:標準版(自由)和專業版(商業許可)

6.2 Ajax.NET(自從3月2005年)

網址是:http://ajax.schwarz-interactive.de/,是一個庫,實現從Javascript到伺服器端.NET的存取。

•象SAJAX,能把Javascript中的調用傳遞到.NET方法,並返回到Javascript回叫。

•能存取來自於JavaScript的會話資料。

•緩衝結果

•自由使用,可用的源碼,未指定使用許可。由Michael Schwarz(http://weblogs.asp.net/mschwarz/)所維護。

•不允許改變原始碼,用屬性標記方法

•完整的類支援以返回用戶端JavaScript值

•使用HtmlControls來進行輸入和傳回值

•可以返回資料表,資料集,資料檢視,數組和集合

7 伺服器端:PHP

7.1 AjaxAC(自從2005年4月)

網址是:http://ajax.zervaas.com.au/,用單個的PHP類封裝了完整的應用程式。

•所有的應用程式代碼是自包含在單個類中(附加另外一些JavaScript庫)

•乾淨利索地調用PHP檔案/HTML頁面。只需建立應用程式類,然後參照應用程式JavaScript和依附任何需要的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還處於其發展的早期,因此Ajax可能逐漸成為Rails架構的核心。

•產生瀏覽器中大多數/全部的視窗小工具和動畫的Javascript指令碼。

•支援伺服器端調用。

•調度支援。 

•開源許可。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.