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),由JotSpotAlex 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:更新資料,也就是無重新整理提交了。

4.6 AJAX Java Server Faces Framework

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中的函式。

  • 進行了嚴謹的單元測試
  • 開源授權(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 相關技術的基礎,並提供實例供您上手。

<<<返回技術中心

技術文章

站內新聞