DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 基於Ajax的應用程序架構匯總
基於Ajax的應用程序架構匯總
編輯:AJAX詳解     
浏覽器端框架被劃分成兩大類:

·應用程序框架:提供浏覽器的功能,但是常以包括窗口小部件抽象和另外的部件而出名,其功能主要圍繞桌面GUI框架。

·基本結構框架:提供基本的管道和可移植的浏覽器抽象,讓開發者去創建內容。典型的功能:

* 針對XMLHttpRequest的包裝器以封裝浏覽器-服務器的交互。(所有的框架都提供這一功能)。

* XML操作和查詢。

* 根據來自XMLHttpRequest的應答執行DOM操作。

* 在一些情況中,與另外的浏覽器端技術如Flash(和潛在的Java applets)集成在一起。

而服務器端框架通常以下面兩種方式工作(盡管它們在這裡根據語言的不同進行了分類):

·HTML/JS生成:服務器提供完整的Html/Javascript代碼生成和浏覽器-服務器協調,結果是只有浏覽器端編碼可以被定制。

·遠程調用:Javascript調用直接被路由到服務器端功能(例如Java方法)並返回到Javascript回叫處理器;或者Javascript調用服務器以提取信息,例如會話細節,數據庫查詢等。

·純Javascript:應用程序框架

1.1 Bindows(自從2003年)

網址是:http://www.bindows.Net,Bindows是一個軟件開發包(SDK),它,通過強力聯合DHtml,Javascript,CSS和XML等技術,能生成高度交互的互聯網應用程序-成為現代的桌面應用程序的強有力對手。Bindows應用程序不要求下載和也不需要在用戶端安裝-僅要求有一個浏覽器(也不需要Java,Flash或者ActiveX)。Bindows有可能領導面向對象開發的AJax應用程序的平台。

·它是商業化的,使用來自於MB的技術(總部位於GA USA,主要開發中心在瑞典,成立於2002年)。

Bindows框架提供給你:

·基於類的面向對象的API

·一套完整的窗口系統,提供寬范圍的窗口小部件支持,包括菜單、表單、格子、滑動條、量程,甚至更多

·用於開發zero-footprint SOA客戶端應用程序的領先的工具箱

·本機的XML,SOAP和XML-RPC支持

·單用戶到企業級的支持

·內建的對AJax的支持

Bindows開發環境:

·支持企業級規模的工程開發

·跨浏覽器,跨平台支持

·服務器獨立結構

·與新的和現有資源的互操作性

·一致性開發方法學

1.2 BackBase(自從2003年)

網址是:http://www.backbase.com,是一個全面的浏覽器端框架,支持豐富的浏覽器功能以及與.Net和Java的集成。

·商業化,來自於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應答能被路由到一個或者更多回叫操作,DOM對象,或者Javascript對象。

·容易鼠標拖動支持。

·AJax動畫,例如縮放和變換。

·"行為"-實質上是窗口小組件庫。

·使用指南(http://www.mirimar.Net/mailbrowser/),由RussMirimar的Yonah所提供

·開源。源於Sabre航空公司解決方案,由Bill Scott(http://looksgoodworkswell.blogspot.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.com/,目的是提供高度可移植的和全面的Javascript API,結果是,可能自動生成大量的客戶端代碼。自稱是"企業級AJax"。

·遠程腳本運行在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/testAJaxCaller/,是一基本的線程安全的XMLHttpRequest包裝器,主要針對Ajax新手,仍處於原始的alpha開發階段,目前僅與AJaxPatterns的在線搜索范例一起打包。

·實現對服務器的調用(GET/POST/PUT/DELETE),用路由到一個回叫操作的plain-text或者XML完成。

·使用過的XMLHttpRequest對象的析構。

·Response緩沖(計劃的)。

·針對AJax新手-並非強調性能優化,該庫主要用於實現易讀的基礎代碼並將提供調試支持。

·開源許可。由Michael Mahemoff(http://softwareas.com)(具有John Wehr和Richard Schwartz的一些思想)維護。

2.2 Flash JavaScript集成包

網址是:http://www.osFlash.org/doku.PHP?id=FlashJS,允許JavaScript和Flash內容的集成:

·使JavaScript能夠調用ActionScript功能和反過來的實現。

·所有主要的數據類型能在這兩種環境之間傳遞。

·開源許可。由多個開源Flash貢獻者提供支持。

2.3 Google AJaxSLT(發行於2005年6月)

網址是:http://goog-AJaxslt.sourceforge.Net/,是一個Javascript框架,用來執行XSLT轉換以及XPath查詢。

·建立在Google地圖工作基礎之上。

·開源許可(BSD)。由一家創新搜索方案公司支持,自稱為"Google"。

2.4 HtmlHttpRequest(Beta版;始於2005年)

HtmlHttpRequest(http://www.twinhelix.com/Javascript/Htmlhttprequest/),它使用了XMLHttpRequest和Iframes以改進兼容性。

·測試過並能工作在:IE6/Win,IE5.5/Win,IE5/Win,IE4/Win,Mozilla/Win,Opera7/Win,Safari/Mac,IE5/Mac。

·未測試,可能能工作在:IE4/Mac,Mozilla/Mac,Opera/Other,Konqueror/Linux。你正在使用這些之一嗎?作者正在請求兼容性信息。

·開源許可(LGPL)。由Twin Helix Designs(http://www.twinhelix.com/)的Angus Turnbull維護。

2.5 交互式網站框架(自從2005年5月)

交互式網站框架(http://sourceforge.Net/projects/iwf/,是一個項目,目的是從浏覽器端對AJax基礎結構的多方面予以支持。自描述為"使用Javascript,CSS,XML,和Html來創造高度交互網站的框架。包括一個定制的針對高度可讀的Javascript的XML分析器。實質上,是建立基於AJax的網站的基礎,還有另外一些通用腳本"。

·線程安全的XMLHttpRequest實現。

·針對XML文檔的包裝器,以便你能夠創建更具可讀性的代碼:

var node = doc.grocerIEs.frozen[0].pizza[0].size;</pre>

代替手工的導航:

var node = doc.documentElement.firstChild.firstChild.getAttribute("size");</pre>

·開源許可。由Weaver(http://circaware.com|Brock)維護。

2.6 LibXMLHttpRequest(發行於2003年6月)

libXmlRequest(http://www.whitefrost.com/servlet/connector?file=reference/2003/06/17/libXMLRequest.Html),是XMLHttpRequest的一個瘦包裝器。

·getXML()和postXML()方法。

·XMLHttpRequest對象池支持。

·Response緩沖。

·可用源碼(明顯),但是受標准版權的保護,由Stephen W.Coate(http://www.whitefrost.com/index.JSP)所維護。

2.7 RSLite(x)

網站是:http://www.ashleyit.com/rs/main.htm,是一個針對XMLHttpRequest的瘦包裝器。

·一個簡單的組件,作為Brent Ashley的更全面的遠程腳本工作(參見Javascript遠程腳本-JSRS在多語言服務器端)的一部分發行。

2.8 Sack(在開發中,自從2005年5月)

網站是:http://twilightuniverse.com/2005/05/sack-of-AJax/,是一個針對XMLHttpRequest的瘦包裝器。

·調用者能指定回叫函數或者回叫DOM對象。借助於回叫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","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中的<servlet>和<filter>的容易且靈活的配置,並能(但不是依賴)與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腳本。

·支持服務器端調用。

·調度支持。

·開源許可。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved