AJAX架構匯總

來源:互聯網
上載者:User

基於瀏覽器的應用程式框架一般分為兩種: Aplication frameworks:提供了瀏覽器功能,但其最著名的還是在於通過視窗產生組件建立案頭GUI。 Infrastructural frameworks:提供基本的架構功能和輕便式瀏覽器端操作,讓開發人員去建立具體應用,主要功能包括: 基於XMLHttpRequest組件的瀏覽器互動功能 XML解析和操作功能 根據XMLHttpRequest的返回資訊進行相應的DOM操作 一些特殊情況下,和其他的瀏覽器端技術如Flash(或Java Applets)等集合到一起應用

基於伺服器端的應用程式框架通常以下面兩種方式工作(儘管它們根據不同的語言進行了分類) HTML/JS Generation(HTML/JS產生):通過伺服器端產生HTML和JS代碼在傳遞給瀏覽器端進行直接運行 遠程互動:JavaScript調用伺服器端函數(例如調用Java函數)並返回給JavaScript的回調控制代碼,或者請求伺服器端資料資訊,例如Session資訊,資料庫查詢等。 目錄 1 Pure Javascript: Application Frameworks 1.1 Bindows 1.2 BackBase 1.3 DOJO 1.4 Open Rico 1.5 qooxdoo 1.6 Tibet 1.7 AJFORM 2 Pure Javascript: Infrastructural Frameworks 2.1 AjaxCaller 2.2 Flash JavaScript Integration Kit 2.3 Google AJAXSLT 2.4 HTMLHttpRequest 2.5 Interactive Website Framework 2.6 LibXMLHttpRequest 2.7 MAJAX 2.8 RSLite 2.9 Sack 2.10 Sarissa 2.11 XHConn 3 Server-Side: Multi-Language 3.1 Cross-Platform Asynchronous INterface Toolkit 3.2 SAJAX 3.3 Javascipt Object Notation (JSON) and JSON-RPC 3.4 Javascript Remote Scripting (JSRS) 3.5 Bitkraft for ASP.NET 4 Server-Side: Java 4.1 WebORB for Java 4.2 Echo 2 4.3 Direct Web Remoting (DWR) 4.4 SWATO 4.5 AJAX JSP Tag Library 4.6 AJAX Java Server Faces Framework 5 Server-Side: Lisp 5.1 CL-Ajax 6 Server-Side: .NET 6.1 WebORB for .NET 6.2 Ajax.NET 6.3 ComfortASP.NET 6.4 AjaxAspects 7 Server-Side: PHP 7.1 AjaxAC 7.2 JPSpan 7.3 XAJAX 8 Server-Side: Ruby 8.1 Ruby On Rails

? 1. Pure Javascript: Application Frameworks 1.1 Bindows (成立於2003年)

Bindows 是一個通過DHTML、JavaScript、CSS和HTML等技術強勁聯合起來的一套完整的Windows案頭式的WEB應用程式解決方案。Bindows無需下載安裝用戶端支撐組件(如Java、ActiveX或Flash),僅需一個瀏覽器。純OO的理念體現在Bindows任何地方,Bindows或許是筆者見過的最完整最強大的AJAX應用程式平台。
Bindows是商業程式的,使用了來自於MB的技術(總部位於GA USA,主要開發中心在瑞典,成立於2002年)。

Bindows架構提供的功能和特性有: 基於面相對象技術的類和API 一套完整的Windows案頭系統,支援各種特性視窗模式,包括菜單、表單、表格、滑動條、測量儀器視窗和其他一些Windows視窗特性支援。 是開發zero-footprint(零空間佔用)SOA用戶端應用程式首選工具包 原生XML,SOAP和XML-RPC支援 單使用者到企業級開發的支援 內建的完美的AJAX支援

Bindows開發環境: 支援企業級規模的項目開發 跨瀏覽器、跨OS平台的支援 不受伺服器結構限制 良好的與新的、現有的資源互通性 統一的開發介面

? 1.2 BackBase (成立於2003年)

BackBase 是一個完整的瀏覽器端架構,提供了豐富的瀏覽器操作功能,以及對.NET和JAVA平台的整合。
商業化產品,來自於Backbase B.V(總部在Amsterdam,成立於2003年)。

? 1.3 DOJO (開發中,成立於2004年9月)

DOJO提供完整的輕量級視窗組件和瀏覽器-伺服器訊息映射支援 提供建立自訂Javascript視窗組件的架構支援 預製的豐富的視窗類別型庫 B/S訊息映射支援——XMLHttpRequest和其他機制 支援瀏覽器中的URL操縱功能 開源許可(Academic Free License 2.1),由JotSpot的Alex Russell所領導。 1.4 Open Rico (開發中;成立於2005年5月;基於早期的一個proprietary 架構)

Open Rico 是一個支援Ajax架構和使用者互動的多用途架構。 一個XMLHttpRequest response能被一個或多個的DOM對象,或者Javascript對象調用。 支援拖拽操作 支援基於AJAX的動畫模式,如縮放和變換等 基於Behaviors的操作庫 使用指南 ,由RussMirimar的Yonah提供 開源。源於Sabre航空公司解決方案,由Bill Scott,Darren James及另外一些人維護。

? 1.5 qooxdoo (開發中; 成立於2005年5月)

qooxdoo ,是另一個發展迅猛的應用程式框架,提供廣泛的UI支援,正在開發基礎架構等特性。 基礎結構特性: 能輕易的捕獲和操縱DOM事件 支援調試 支援一個時間操作的Timer類 Getter/Setter支援 UI: 視窗組件庫和架構 介面布局管理 映像緩衝和透明PNG圖片處理 開源(LGPL). 1.6 Tibet (開發中; 建立於2005年6月)

Tibet 提供了大量的易移植和完整的JavaScript API,通過這些可以快速產生大量的用戶端代碼,Tibet自稱是企業級AJAX。 遠程指令碼調用封裝在XMLHttpRequest中 URI支援 支援所有的HTTP事件,不再僅僅是GET和POST 低級的協議-File://和WebDav也可以當作HTTP正常使用 Web Services調用支援,包括SOAP、XML-RPC等等 大型的Javascript物件程式庫 多種多樣的XML操作支援 IDE和開發工具 開源協議(OSI) 1.7 AJFORM (建立於2005年6月)

AJFORM 是一個極易上手的AJAX架構,被用來編寫入門級的AJAX代碼,提供有以下功能: 三步安裝 自動支援任意HTML表單元素 幾乎無需編碼即可實現AJAX 2 Pure Javascript: Infrastructural Frameworks 2.1 AjaxCaller(建立於2005年5月,目前是Alpha版)

AjaxCaller 是一個具有多安全執行緒訪問的XMLHttpRequest組件,主要針對Ajax開發新手,目前仍處於alpha開發階段,僅在AjaxPatterns的線上搜尋範例中使用了這個程式。 用明文或者XML結構的資料實現和伺服器的互動(GET/POST/PUT/DELETE) 支援XMLHttRequest對象的構析(銷毀對象,C++支援記憶體對象的構析操作) 支援Response的快取(尚在計劃中) 簡單的庫檔案代碼易於新手學習使用,並且支援指令碼調試 開源協議 2.2 Flash JavaScript Integration Kit

The Flash JavaScript Integration Kit 可以使Flash和Javascript指令碼實現相互整合。 可以實現在JavaScript中調用Flash ActionScript指令碼,反之亦然。 幾乎支援雙方主要資料類型的在不同環境中的傳遞調用。 開源協議,有幾個Flash開源愛好者維護。 2.3 Google AJAXSLT (2005年6月發行)

Google AJAXSLT ,是一個Javascript架構,用來執行XSLT轉換以及XPath查詢。 目前在Google Map上就使用了這個。 開源協議(BSD) 2.4 HTMLHttpRequest(Beta版;建立於2005年)

HtmlHttpRequest 最大的特點就是運用XMLHttpRequest對象和標準HTML標籤IFrame來實現最大限度的跨瀏覽跨平台的AJAX支援,其原理是在支援XMLHttpRequest的瀏覽器上調用XMLHttp,如果不支援,就用IFrame來類比實現非同步互動。 目前支援的瀏覽器: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) 2.5 Interactive Website Framework (建立於2005年)

Interactive Website Framework 定位在瀏覽器中支援各種各樣的AJAX基礎應用的開源項目。自稱是通過JavaScript、CSS、XML和HTML實現高效能的互動式WEB架構,包括一個可定製易讀的XML解析器。實際上,IWF是一個AJAX的基礎架構,並且還包括一些泛型指令碼代碼。 實現了安全執行緒的XMLHttpRequest 對XML Document進行封裝,以便建立更具有可讀性的代碼:
var node = doc.groceries.frozen[0].pizza[0].size; 封裝後的資料讀取 var node = doc.documentElement.firstChild.firstChild.getAttribute("size"); 原始的DOM操作讀取 開源協議
2.6 LibXMLHttpRequest (2003年6月發布)

libXmlRequest 是一個小型XMLHttpRequest封裝包 用getXML()和postXML()兩個事件簡化XMLHttpReuqest調用 支援XMLHttpRequest對象池 Response緩衝處理 源碼可以使用,但是有著作權保護。 2.7 MAJAX

MAJAX 是另一個非常小巧的HttpRequest封裝包,為收發字元型資訊提供簡單介面,並為每步動作設定回調介面。 2.8 RSLite (x)

RSLite 是一個XMLHttpRequest封裝組件,作為Brent Ashley的JSRS(JavaScript Remote Scripting)其中的一部分功能單獨發布。詳情可以看JSRS的介紹 2.9 Sack(開發中,成立於2005年5月)

Sack 也是一個很有名字的微型XMLHttpRequest封裝包。調用者可以自訂回呼函數或者是DOM對象。藉助於回調DOM對象,可以把Response回來的資料直接以文本的方式嵌入DOM中。 2.10 Sarissa (發佈於2003年2月)

Sarissa 是一個JavaScript API,封裝了在瀏覽器端獨立調用XML的功能。 可移植的XMLHttpRequest對象創造 可移植的XPath查詢 可移植的DOM操控 可移植的XSLT 可移植的XML序列化 開源協議(GPL2.0和LGPL2.1) 2.11 XHConn (2005年4月發布)

XHConn 也是一個小型的XMLHttpRequest封裝庫。筆者也使用改良過的XHConn,其特點就是調用簡單,代碼也清晰易讀。 例子: new XHConn().connect("mypage.php","POST","foo=bar&baz=qux",fnWhenDone); 開源協議許可 3 Server-Side: Multi-Language 3.1 Cross-Platform Asynchronous INterface Toolkit (2005年5月)

CPAINT 是一個真正的同時支援PHP和ASP/VBScript指令碼的AJAX和JSRS工具包。CPAINT在後台提供你需求的AJAX和JSRS代碼,並自動返回到瀏覽器端相應的Javascript指令碼代碼,這種方式易於即時反饋需求的WEB應用程式。 支援PHP和ASP 所有功能函數都在統一的JavaScript檔案中 支援遠程指令碼和XML 支援本地和遠程函數調用 可以建立單個或多個XMLHttp對象 返回給背景資料即可以是文本也可以是XML/DOM文檔對象 支援POST和GET 用服務端代理的方式實現遠程函數和資料的訪問操作 大部分瀏覽器中測試正常使用 在GNU、GPL、LGPL開源協議保護下發行 3.2 SAJAX (2005年3月)

SAJAX 的實現方式很獨特,例如:調用一個javascript方法x_calculateBudget(),將先把響應傳到伺服器並調用一個Java calculateBudget()方法,然後以javascript方式把值返回到x_calculateBudget_cb()中。SAJAX的名氣不錯,估計很多人都聽過甚至用過,不過缺點就是它的這套映射理論感覺較繁鎖,遠不如一些輕量級的封裝庫好用,不過SAJAX最大的特點就是支援的平台豐富,幾乎囊括了WEB下常用的程式設計語言和平台 很方便從JavaScript函數映射到服務端代理操作 支援多種平台(ASP/ColdFusion/Io/Lua/Perl/PHP/Python/Ruby) 開源協議 3.3 Javascipt Object Notation (JSON) and JSON-RPC

JSON 是一個"face-free" XML,而JSON-RPC是一種遠程互動協議,類似於XML-RPC,對JavaScript支援較強 支援多服務端平台 : Java, Python, Ruby, Perl. 針對不同的平台有不同的包和許可協議, 如JSON-RPC-Java. 3.4 JavaScript Remote Scripting(JSRS)(2000年)

JSRS ,較經典的遠程指令碼訪問組件,支援將用戶端資料通過伺服器做代理進行遠端資料/操作互動。 支援的瀏覽器:IE4+,NS4.x,NS6.x,Mozilla,Opera7和Galeon。 伺服器端指令碼語言支援:ASP,ColdFusion,PerlCGI,PHP,Python和JSP(servlet)。 開源協議。由Brent Ashley提供支援。 3.5 Bitkraft for ASP.NET

Bitkraft 是個基於(.NET)Web架構的CLR(公用語言運行庫),允許用獨特的方式建立和操作分布式Web內容。用C#編寫,運行在微軟的.NET 1.1和Mono架構下,無縫式的用戶端-伺服器回應程式式是它的最大特點。Bitkraft沒有使用XML組織資料,而是用JSON代替。 支援的瀏覽器: IE5+, Firefox1+, NS6 伺服器端要求:ASP.NET, Mono XSP, Cassini, Apache (modMono) .NET Framework 1.1+ 事件驅動 支援同步和非同步遠程代理 用戶端支援所有的.NET類型或自訂類對象映射到JSON中 用JSON取代XML 免費,開源許可協議 4 Server-Side: Java 4.1 WebORB for Java (2005年8月)

WebORB for Java 是一個開發AJAX和基於Flash的富用戶端應用程式的開發平台。線上例子 WebORB包括一個富用戶端開發類庫。提供簡單的線上式API用來綁定或者調用任何Java對象、XML Web Services和EJB 支援非同步或同步的事件驅動 不需要在服務端修改任何代碼,不需要自訂方法或屬性、變數等。不要求設計時指定代理等。 同步調用不需要回調,非同步呼叫需要一個回調方法。 用戶端可以向服務端請求指定的活動方式,不需要任何編程就可以把處理結果輕易的轉變為狀態。 提供一個特定API來處理資料庫查詢結果-伺服器代碼能返回DataSet或者DataTable,而用戶端以一個類似於RecordSet的JavaScript對象來顯示這個結果。該對象提供檢索列名和行資料的方法。 支援資料分頁技術。客戶應用程式能檢索頁面中的資料。 支援以參數的方式返回所有服務期端資料類型,如primitives, strings, complex types, arrays, native .net collections, remote references 目前有兩個版本:標準版(免費),專業版(商業許可) 4.2 Echo 2 (2005年3月)

Echo 2 允許你用純Java語言編寫AJAX程式。 Demo. 自動產生HTML和Javascript代碼 用XML在用戶端-服務端傳遞訊息 如果願意支援自訂Javascript組件 開源協議(Mozilla Public License or GNU LGPL) 4.3 Direct Web Remoting (DWR) (2005)

Direct Web Remoting 可以在Javascript代碼中直接調用Java方法的應用程式框架 類似於SAJAX,可以把Javascript中的請求調用轉遞到Java方法中並將執行結果返回給Javascript 可以和任何Web架構一起使用,如Struts、Tapestry等等 開源(Apache),目前該產品被加入到WebWork中 4.4 SWATO (2005)

SWATO 是一套可重用的和良好整合的Java/JavaScript庫,它實現了一種更容易的方式來改變你的web應用程式的互動,通過AJAX方式實現。 服務端Java庫可以非常容易的部署到所有Servlet2.3+相容的容器中 用戶端Javascript庫可以在所有支援XMLHttpRequest的瀏覽器中使用 使用JSON技術在服務端組織POJO資料,這樣你可以在任何Javascript環境中(HTML、XUL、SVG)訪問這些遠端資料,這種方式很容易通過寫入程式碼或者某種成熟的Javascript庫整合到當前應用中 提供一個簡單介面使你能在Javascript中調用遠端POJO資料 使用<servlet>和<filter>靈活的在web.xml中進行配置,並且可以整合(不是必須)到你的Spring架構中 提供了幾個可協助你快速開發web應用程式的組件(如自動完成的文字框,線上表單,線上列表等等) 4.5 AJAX JSP Tag Library

The AJAX JSP Tag Library 是一組JSP標籤庫,用來AJAX程式開發。可以在J2EE下無需Javascript就能輕鬆開發AJAX模式的Web Form。標籤庫為比較通用的AJAX功能提供了5個標籤: autocomplete: 使用者在文字框中輸入字元,自動從指定的資料中匹配使用者輸入的字元,類似於Google Suggest callout:可以為A標籤加入氣泡式的訊息提示框,不過是即時的服務端取出資料 Select/dropdown:類似於聯動菜單,比如地州市的聯動下拉框 toggle:開關閘按鈕,比如在一個hidden表單域中儲存true和falsh,同時顯示相應的img映像 update field:更新資料,也就是無重新整理提交了。 4.6 AJAX Java Server Faces Framework

The AJAX-JSF 用來把任意的JSF應用程式轉變為AJAX應用程式 例子 :AJAX組件的 MyFaces JSF Tree(樹型目錄), table scroller(可滾動的表格), tabbed pane(分頁欄) 開源協議(Apache Software License) Server-Side: Lisp 5.1 CL-Ajax

CL-Ajax 實現Javascript直接調用服務端Lisp 產生可帶參數的函數 可以回調Javascript函數或者DOM對象 可以整合到SAJAX中 開源許可 6 Server-Side: .NET 6.1 WebORB for .NET (2005年8月)

WebORB for .NET 是一個用.NET和XML Web Services方式開發AJAX和基於Flash的富用戶端應用程式(線上例子) WebORB包括一個富用戶端開發類庫。提供簡單的線上式API用來綁定或者調用任何.NET對象、XML Web Services 支援非同步或同步的事件驅動 不需要在服務端修改任何代碼,不需要自訂方法或屬性、變數等。不要求設計時指定代理等。 同步調用不需要回調,非同步呼叫需要一個回調方法。 用戶端可以向服務端請求指定的活動方式,不需要任何編程就可以把處理結果輕易的轉變為狀態。 提供一個特定API來處理資料庫查詢結果-伺服器代碼能返回DataSet或者DataTable,而用戶端以一個類似於RecordSet的JavaScript對象來顯示這個結果。該對象提供檢索列名和行資料的方法。 支援資料分頁技術。客戶應用程式能檢索頁面中的資料。 支援以參數的方式返回所有服務期端資料類型,如primitives, strings, complex types, arrays, native .net collections, remote references 目前有兩個版本:標準版(免費),專業版(商業許可) 6.2 Ajax.NET (2005年3月)

Ajax.NET 是首家支援各種方式通過Javascript訪問服務端.net的免費庫 類似於SAJAX,能把Javascript請求發送到.NET方法,服務端回傳給Javascript,甚至包括序列化自訂類。 可以在Javascript中訪問Session和Application資料 緩衝查詢結果 免費使用原始碼 無需更改原始碼,允許給Ajax.NET添加和修改方法和屬性 所有類支援Javascript用戶端返回資料,可以在JavaScript中使用DataSet:res.Tables[0].Rows 使用HtmlControls組件訪問和返回資料 頁面無需重載,用事件代理(資料訪問層) 因為只提供一個調用介面方法,所以服務端CPU佔用非常少 6.3 ComfortASP.NET (2005年8月)

ComfortASP.NET 可以讓開發人員在純.NET下開發類似AJAX(DHTML,JavaScript,XMLHttp)特性的應用程式。 快速應答 減少HTML傳輸 減少頁面重載 無閃爍的瀏覽器內容更改 AJAX使用者體驗, 6.4 AjaxAspects (2005年8月)

AjaxAspects 是個可以用Javascript調用服務端WebService事件的引擎 用標準的SOAP和WSDL進行服務端-用戶端通訊 用簡單的類型和XML對象支援帶參數的傳回值 緩衝支援 動作隊列 免費使用,開源協議 7 Server-Side: PHP 7.1 AjaxAC (2005年4月)

AjaxAC 用一個單獨類封裝了完整的應用程式功能 所有的功能整合在自包含的類中(另外附帶一些Javascript庫) 調用PHP檔案或者HTML頁面非常簡易,只需建立App類後把類引用傳遞給需要調用的Javascript對象或者HTML元素即可。 捕獲Javascript事件 可以自訂配置資料,並且支援運行時參數更改 無需再Javascript代碼中夾雜淩亂的Html代碼,所有事件都是被動態附加上的 由於以上兩個優點,所以支援良好的模版引擎 容易Hook到PHP類和MySql資料已返回給自己的request 能夠容易的用Javascript建立視窗模式應用程式。 7.2 JPSpan

JPSPAN 通過Javascript直接調用PHP中的函數。 進行了嚴謹的單元測試 開源許可(PHP) 7.3 XAJAX

XAjax 通過Javascript直接調用PHP中的函數 支援用Javascript調用PHP指令碼 開源許可協議 8 Server-Side: Ruby 8.1 Ruby On Rails

Ruby On Rails 是一個支援AJAX的完整Web架構,使用Ruby語言編寫,嚴格按照MVC結構開發。 當Ajax出現的時候Rails還處於其發展的早期,因此Ajax可能逐漸成為Rails架構的核心。 產生瀏覽器中大多數/全部的Window應用組件和動畫的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.