基於Ajax的應用程式架構設計匯總

來源:互聯網
上載者:User
ajax|程式|架構|設計

1 瀏覽器端架構被劃分成兩大類

•應用程式架構:提供瀏覽器的功能,但是常以包括視窗小組件抽象和另外的組件而出名,其功能主要圍繞案頭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;

代替手工的導航:

var node = doc.documentElement.firstChild.firstChild.getAttribute("size");

•開源許可。由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所維護。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.