AJAX框架彙總
日期:2008-07-17 作者:喜騰小二 來源:PHPChina
1. Pure javascript: Application Frameworks
1.1 Bindows (成立於2003年)
Backbase是一個透過DHTML、JavaScript、CSS和HTML等技術強勁聯合起來的一套完整的Windows桌麵式的WEB應用程式解決方案。Bindows無需下載安裝用戶端支撐元件(如Java、ActiveX或Flash),僅需一個浏覽器。純OO的理念體現在Bindows任何地方,Bindows或許是筆者見過的最完整最強大的javascript:void(0);">AJAX應用程式平臺。
Bindows是商業程式的,使用了來自於MB的技術(總部位於GA USA,主要開發中心在瑞典,成立於2002年)。
Bindows框架提供的功能和特性有:
- 基於麵相物件技術的類和API
- 一套完整的Windows桌麵係統,支援各種特性視窗模式,包括功能表、表單、表格、滑動條、測量儀器視窗和其他一些Windows視窗特性支援。
- 是開發zero-footprint(零空間占用)SOA用戶端應用程式首選工俱包
- 本機的XML,SOAP和XML-RPC支援
- 單使用者到企業級開發的支援
- 內建的完美的javascript:void(0);">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物件調用。
- 支援拖拽操作
- 支援基於javascript:void(0);">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自稱是企業級javascript:void(0);">AJAX。
- 遠端指令檔調用封裝在XMLHttpRequest中
- URI支援
- 支援所有的HTTP事件,不再僅僅是GET和POST
- 低級的協定-File://和WebDav也可以當作HTTP正常使用
- Web Services調用支援,包括SOAP、XML-RPC等等
- 大型的Javascript物件庫
- 多種多樣的XML操作支援
- IDE和開發工俱
- 開源協定(OSI)
1.7 AJFORM (建立於2005年6月)
AJFORM是一個極易上手的javascript:void(0);">AJAX框架,被用來編寫入門級的javascript:void(0);">AJAX程式碼,提供有以下功能:
- 三步安裝
- 自動支援任意HTML表單元素
- 幾乎無需編碼即可實現javascript:void(0);">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來實現最大限度的跨浏覽跨平臺的javascript:void(0);">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定位在浏覽器中支援各種各樣的javascript:void(0);">AJAX基礎應用的開源項目。自稱是透過JavaScript、CSS、XML和HTML實現高效能的互動式WEB框架,包括一個可自訂易讀的XML解析器。實際上,IWF是一個javascript:void(0);">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指令檔的javascript:void(0);">AJAX和JSRS工俱包。CPAINT在後臺提供妳需求的javascript:void(0);">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是一個開發javascript:void(0);">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語言編寫javascript:void(0);">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應用程式的互動,透過javascript:void(0);">AJAX方式實現。
- 服務端Java庫可以非常容易的部署到所有Servlet2.3+相容的容器中
- 用戶端Javascript庫可以在所有支援XMLHttpRequest的浏覽器中使用
- 使用JSON技術在服務端組織POJO資料,這樣妳可以在任何Javascript環境中(HTML、XUL、SVG)訪問這些遠端資料,這種方式很容易透過硬編碼或者某種成熟的Javascript庫整合到當前應用中
- 提供一個簡單介麵使妳能在Javascript中調用遠端的POJO資料
- 使用和靈活的在web.xml中進行配置,並且可以整合(不是必須)到妳的Spring框架中
- 提供了幾個可說明妳快速開發web應用程式的元件(如自動完成的文字方塊,線上表單,線上清單等等)
4.5 Tag Library
The Tag Library
- autocomplete: 使用者在文字方塊中輸入字元,自動從指定的資料中比對使用者輸入的字元,類似於Google Suggest
- callout:可以為A選項卡加入氣泡式的訊息提示框,不過是即時的服務端取出資料
- Select/dropdown:類似於聯動功能表,比如地州市的聯動下拉式方塊
- toggle:開關閘按鈕,比如在一個hidden表單域中存儲true和falsh,同時顯示相應的img影像
- update field:更新資料,也就是無重新整理提交了。
The AJAX-JSF用來把任意的JSF應用程式轉變為javascript:void(0);">AJAX應用程式
- 例子:javascript:void(0);">AJAX元件的 MyFaces JSF Tree(樹型目錄), table scroller(可捲動的表格), tabbed pane(分頁欄)
- 開源協定(Apache Software License)
5 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方式開發javascript:void(0);">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月)
.NET是首家支援各種方式透過Javascript訪問服務端.net的免費庫 Ajax.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下開發類似javascript:void(0);">AJAX(DHTML,JavaScript,XMLHttp)特性的應用程式。
- 快速應答
- 減少HTML傳輸
- 減少页面多載
- 無閃爍的浏覽器內容變更
- javascript:void(0);">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中的函式。
7.3 XAJAX
XAjax透過Javascript直接調用PHP中的函式
- 支援用Javascript調用PHP指令檔
- 開源授權協定
8 Server-Side: Ruby
8.1 Ruby On Rails
Ruby On Rails是一個支援javascript:void(0);">AJAX的完整Web框架,使用Ruby語言編寫,嚴格按照MVC結構開發。
- 當Ajax出現的時候Rails還處於其發展的早期,因此Ajax可能逐漸成為Rails框架的核心。
- 生成浏覽器中大多數/全部的Window應用元件和動畫的Javascript指令檔。
- 支援伺服器端調用。
- 隊列支援
- 開源授權
From MoztwWiki
本文章為 Mozilla Developer Center 的 javascript:void(0);">AJAX:Getting Started (http://developer.mozilla.o... 的翻譯。原文的作者與編修歷史可在它的歷史頁 (http://developer.mozilla.o... action=history)上看到。
這篇文章幫助 javascript:void(0);">AJAX 相關技術的基礎,並提供實例供您上手。
<<<返回技術中心