基于瀏覽器的應(yīng)用框架一般分為兩種:

  • Aplication frameworks:提供了瀏覽器功能,但其最著名的還是在于通過(guò)窗口生成組件建立桌面GUI。
  • Infrastructural frameworks:提供基本的框架功能和輕便式瀏覽器端操作,讓開(kāi)發(fā)者去創(chuàng)建具體應(yīng)用,主要功能包括:
    • 基于XMLHttpRequest組件的瀏覽器交互功能
    • XML解析和操作功能
    • 根據(jù)XMLHttpRequest的返回信息進(jìn)行相應(yīng)的DOM操作
    • 一些特殊情況下,和其他的瀏覽器端技術(shù)如Flash(或Java Applets)等集合到一起應(yīng)用

基于服務(wù)器端的應(yīng)用框架通常以下面兩種方式工作(盡管它們根據(jù)不同的語(yǔ)言進(jìn)行了分類)

  • HTML/JS Generation(HTML/JS生成):通過(guò)服務(wù)器端生成HTML和JS代碼在傳遞給瀏覽器端進(jìn)行直接運(yùn)行
  • 遠(yuǎn)程交互:JavaScript調(diào)用服務(wù)器端函數(shù)(例如調(diào)用Java函數(shù))并返回給JavaScript的回調(diào)句柄,或者請(qǐng)求服務(wù)器端數(shù)據(jù)信息,例如Session信息,數(shù)據(jù)庫(kù)查詢等。

目錄

1.1 Bindows
1.2 BackBase
1.3 DOJO
1.4 Open Rico
1.5 qooxdoo
1.6 Tibet
1.7 AJFORM
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.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.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.1 CL-Ajax
6.1 WebORB for .NET
6.2 Ajax.NET
6.3 ComfortASP.NET
6.4 AjaxAspects
7.1 AjaxAC
7.2 JPSpan
7.3 XAJAX
8.1 Ruby On Rails

?

1. Pure Javascript: Application Frameworks

1.1 Bindows (成立于2003年)

Bindows 是一個(gè)通過(guò)DHTML、JavaScript、CSS和HTML等技術(shù)強(qiáng)勁聯(lián)合起來(lái)的一套完整的Windows桌面式的WEB應(yīng)用程序解決方案。Bindows無(wú)需下載安裝客戶端支撐組件(如Java、ActiveX或Flash),僅需一個(gè)瀏覽器。純OO的理念體現(xiàn)在Bindows任何地方,Bindows或許是筆者見(jiàn)過(guò)的最完整最強(qiáng)大的AJAX應(yīng)用程序平臺(tái)。
Bindows是商業(yè)程序的,使用了來(lái)自于MB的技術(shù)(總部位于GA USA,主要開(kāi)發(fā)中心在瑞典,成立于2002年)。

Bindows框架提供的功能和特性有:

  • 基于面相對(duì)象技術(shù)的類和API
  • 一套完整的Windows桌面系統(tǒng),支持各種特性窗口模式,包括菜單、表單、表格、滑動(dòng)條、測(cè)量?jī)x器窗口和其他一些Windows窗口特性支持。
  • 是開(kāi)發(fā)zero-footprint(零空間占用)SOA客戶端應(yīng)用程序首選工具包
  • 本機(jī)的XML,SOAP和XML-RPC支持
  • 單用戶到企業(yè)級(jí)開(kāi)發(fā)的支持
  • 內(nèi)建的完美的AJAX支持

Bindows開(kāi)發(fā)環(huán)境:

  • 支持企業(yè)級(jí)規(guī)模的項(xiàng)目開(kāi)發(fā)
  • 跨瀏覽器、跨OS平臺(tái)的支持
  • 不受服務(wù)器結(jié)構(gòu)限制
  • 良好的與新的、現(xiàn)有的資源互操作性
  • 統(tǒng)一的開(kāi)發(fā)接口

?

1.2 BackBase (成立于2003年)

BackBase 是一個(gè)完整的瀏覽器端框架,提供了豐富的瀏覽器操作功能,以及對(duì).NET和JAVA平臺(tái)的集成。
商業(yè)化產(chǎn)品,來(lái)自于Backbase B.V(總部在Amsterdam,成立于2003年)。

?

1.3 DOJO (開(kāi)發(fā)中,成立于2004年9月)

DOJO提供完整的輕量級(jí)窗口組件和瀏覽器-服務(wù)器消息映射支持

  • 提供創(chuàng)建自定義Javascript窗口組件的框架支持
  • 預(yù)制的豐富的窗口類型庫(kù)
  • B/S消息映射支持——XMLHttpRequest和其他機(jī)制
  • 支持瀏覽器中的URL操縱功能
  • 開(kāi)源許可(Academic Free License 2.1),由JotSpotAlex Russell所領(lǐng)導(dǎo)。

1.4 Open Rico (開(kāi)發(fā)中;成立于2005年5月;基于早期的一個(gè)proprietary 框架)

Open Rico 是一個(gè)支持Ajax架構(gòu)和用戶交互的多用途框架。

  • 一個(gè)XMLHttpRequest response能被一個(gè)或多個(gè)的DOM對(duì)象,或者Javascript對(duì)象調(diào)用。
  • 支持拖拽操作
  • 支持基于AJAX的動(dòng)畫模式,如縮放和變換等
  • 基于Behaviors的操作庫(kù)
  • 使用指南 ,由RussMirimar的Yonah提供
  • 開(kāi)源。源于Sabre航空公司解決方案,由Bill Scott,Darren James及另外一些人維護(hù)。

?

1.5 qooxdoo (開(kāi)發(fā)中; 成立于2005年5月)

qooxdoo ,是另一個(gè)發(fā)展迅猛的應(yīng)用框架,提供廣泛的UI支持,正在開(kāi)發(fā)基礎(chǔ)架構(gòu)等特性。

  • 基礎(chǔ)結(jié)構(gòu)特性:
    • 能輕易的捕獲和操縱DOM事件
    • 支持調(diào)試
    • 支持一個(gè)時(shí)間操作的Timer類
    • Getter/Setter支持
  • UI:
    • 窗口組件庫(kù)和框架
    • 界面布局管理
    • 圖像緩存和透明PNG圖片處理
  • 開(kāi)源(LGPL).

1.6 Tibet (開(kāi)發(fā)中; 創(chuàng)建于2005年6月)

Tibet 提供了大量的易移植和完整的JavaScript API,通過(guò)這些可以快速生成大量的客戶端代碼,Tibet自稱是企業(yè)級(jí)AJAX。

  • 遠(yuǎn)程腳本調(diào)用封裝在XMLHttpRequest中
  • URI支持
  • 支持所有的HTTP事件,不再僅僅是GET和POST
  • 低級(jí)的協(xié)議-File://和WebDav也可以當(dāng)作HTTP正常使用
  • Web Services調(diào)用支持,包括SOAP、XML-RPC等等
  • 大型的Javascript對(duì)象庫(kù)
  • 多種多樣的XML操作支持
  • IDE和開(kāi)發(fā)工具
  • 開(kāi)源協(xié)議(OSI)

1.7 AJFORM (創(chuàng)建于2005年6月)

AJFORM 是一個(gè)極易上手的AJAX框架,被用來(lái)編寫入門級(jí)的AJAX代碼,提供有以下功能:

  • 三步安裝
  • 自動(dòng)支持任意HTML表單元素
  • 幾乎無(wú)需編碼即可實(shí)現(xiàn)AJAX

2 Pure Javascript: Infrastructural Frameworks

2.1 AjaxCaller(創(chuàng)建于2005年5月,目前是Alpha版)

AjaxCaller 是一個(gè)具有多線程安全訪問(wèn)的XMLHttpRequest組件,主要針對(duì)Ajax開(kāi)發(fā)新手,目前仍處于alpha開(kāi)發(fā)階段,僅在AjaxPatterns的在線搜索范例中使用了這個(gè)程序。

  • 用明文或者XML結(jié)構(gòu)的數(shù)據(jù)實(shí)現(xiàn)和服務(wù)器的交互(GET/POST/PUT/DELETE)
  • 支持XMLHttRequest對(duì)象的構(gòu)析(銷毀對(duì)象,C++支持內(nèi)存對(duì)象的構(gòu)析操作)
  • 支持Response的高速緩存(尚在計(jì)劃中)
  • 簡(jiǎn)單的庫(kù)文件代碼易于新手學(xué)習(xí)使用,并且支持腳本調(diào)試
  • 開(kāi)源協(xié)議

2.2 Flash JavaScript Integration Kit

The Flash JavaScript Integration Kit 可以使Flash和Javascript腳本實(shí)現(xiàn)相互集成。

  • 可以實(shí)現(xiàn)在JavaScript中調(diào)用Flash ActionScript腳本,反之亦然。
  • 幾乎支持雙方主要數(shù)據(jù)類型的在不同環(huán)境中的傳遞調(diào)用。
  • 開(kāi)源協(xié)議,有幾個(gè)Flash開(kāi)源愛(ài)好者維護(hù)。

2.3 Google AJAXSLT (2005年6月發(fā)行)

Google AJAXSLT ,是一個(gè)Javascript框架,用來(lái)執(zhí)行XSLT轉(zhuǎn)換以及XPath查詢。

  • 目前在Google Map上就使用了這個(gè)。
  • 開(kāi)源協(xié)議(BSD)

2.4 HTMLHttpRequest(Beta版;創(chuàng)建于2005年)

HtmlHttpRequest 最大的特點(diǎn)就是運(yùn)用XMLHttpRequest對(duì)象和標(biāo)準(zhǔn)HTML標(biāo)簽IFrame來(lái)實(shí)現(xiàn)最大限度的跨瀏覽跨平臺(tái)的AJAX支持,其原理是在支持XMLHttpRequest的瀏覽器上調(diào)用XMLHttp,如果不支持,就用IFrame來(lái)模擬實(shí)現(xiàn)異步交互。

  • 目前支持的瀏覽器:IE6/Win, IE5.5/Win, IE5/Win, IE4/Win, Mozilla/Win, Opera7/Win, Safari/Mac, IE5/Mac
  • 尚未測(cè)試的瀏覽器:IE4/Mac, Mozilla/Mac, Opera/Other, Konqueror/Linux。
  • 開(kāi)源協(xié)議(LGPL)

2.5 Interactive Website Framework (創(chuàng)建于2005年)

Interactive Website Framework 定位在瀏覽器中支持各種各樣的AJAX基礎(chǔ)應(yīng)用的開(kāi)源項(xiàng)目。自稱是通過(guò)JavaScript、CSS、XML和HTML實(shí)現(xiàn)高性能的交互式WEB框架,包括一個(gè)可定制易讀的XML解析器。實(shí)際上,IWF是一個(gè)AJAX的基礎(chǔ)框架,并且還包括一些通用腳本代碼。

  • 實(shí)現(xiàn)了線程安全的XMLHttpRequest
  • 對(duì)XML Document進(jìn)行封裝,以便創(chuàng)建更具有可讀性的代碼:
    var node = doc.groceries.frozen[0].pizza[0].size;
    封裝后的數(shù)據(jù)讀取
    var node = doc.documentElement.firstChild.firstChild.getAttribute("size");
    原始的DOM操作讀取
  • 開(kāi)源協(xié)議

2.6 LibXMLHttpRequest (2003年6月發(fā)布)

libXmlRequest 是一個(gè)小型XMLHttpRequest封裝包

  • 用getXML()和postXML()兩個(gè)事件簡(jiǎn)化XMLHttpReuqest調(diào)用
  • 支持XMLHttpRequest對(duì)象池
  • Response緩存處理
  • 源碼可以使用,但是有版權(quán)保護(hù)。

2.7 MAJAX

MAJAX 是另一個(gè)非常小巧的HttpRequest封裝包,為收發(fā)字符型信息提供簡(jiǎn)單接口,并為每步動(dòng)作設(shè)置回調(diào)界面。

2.8 RSLite (x)

RSLite 是一個(gè)XMLHttpRequest封裝組件,作為Brent Ashley的JSRS(JavaScript Remote Scripting)其中的一部分功能單獨(dú)發(fā)布。詳情可以看JSRS的介紹

2.9 Sack(開(kāi)發(fā)中,成立于2005年5月)

Sack 也是一個(gè)很有名字的微型XMLHttpRequest封裝包。調(diào)用者可以自定義回調(diào)函數(shù)或者是DOM對(duì)象。借助于回調(diào)DOM對(duì)象,可以把Response回來(lái)的數(shù)據(jù)直接以文本的方式嵌入DOM中。

2.10 Sarissa (發(fā)布于2003年2月)

Sarissa 是一個(gè)JavaScript API,封裝了在瀏覽器端獨(dú)立調(diào)用XML的功能。

  • 可移植的XMLHttpRequest對(duì)象創(chuàng)造
  • 可移植的XPath查詢
  • 可移植的DOM操控
  • 可移植的XSLT
  • 可移植的XML序列化
  • 開(kāi)源協(xié)議(GPL2.0和LGPL2.1)

2.11 XHConn (2005年4月發(fā)布)

XHConn 也是一個(gè)小型的XMLHttpRequest封裝庫(kù)。筆者也使用改良過(guò)的XHConn,其特點(diǎn)就是調(diào)用簡(jiǎn)單,代碼也清晰易讀。

  • 例子:
    new XHConn().connect("mypage.php","POST","foo=bar&baz=qux",fnWhenDone);
  • 開(kāi)源協(xié)議許可

3 Server-Side: Multi-Language

3.1 Cross-Platform Asynchronous INterface Toolkit (2005年5月)

CPAINT 是一個(gè)真正的同時(shí)支持PHP和ASP/VBScript腳本的AJAX和JSRS工具包。CPAINT在后臺(tái)提供你需求的AJAX和JSRS代碼,并自動(dòng)返回到瀏覽器端相應(yīng)的Javascript腳本代碼,這種方式易于實(shí)時(shí)反饋需求的WEB應(yīng)用程序。

  • 支持PHP和ASP
  • 所有功能函數(shù)都在統(tǒng)一的JavaScript文件中
  • 支持遠(yuǎn)程腳本和XML
  • 支持本地和遠(yuǎn)程函數(shù)調(diào)用
  • 可以創(chuàng)建單個(gè)或多個(gè)XMLHttp對(duì)象
  • 返回給后臺(tái)的數(shù)據(jù)即可以是文本也可以是XML/DOM文檔對(duì)象
  • 支持POST和GET
  • 用服務(wù)端代理的方式實(shí)現(xiàn)遠(yuǎn)程函數(shù)和數(shù)據(jù)的訪問(wèn)操作
  • 大部分瀏覽器中測(cè)試正常使用
  • 在GNU、GPL、LGPL開(kāi)源協(xié)議保護(hù)下發(fā)行

3.2 SAJAX (2005年3月)

SAJAX 的實(shí)現(xiàn)方式很獨(dú)特,例如:調(diào)用一個(gè)javascript方法x_calculateBudget(),將先把響應(yīng)傳到服務(wù)器并調(diào)用一個(gè)Java calculateBudget()方法,然后以javascript方式把值返回到x_calculateBudget_cb()中。SAJAX的名氣不錯(cuò),估計(jì)很多人都聽(tīng)過(guò)甚至用過(guò),不過(guò)缺點(diǎn)就是它的這套映射理論感覺(jué)較繁鎖,遠(yuǎn)不如一些輕量級(jí)的封裝庫(kù)好用,不過(guò)SAJAX最大的特點(diǎn)就是支持的平臺(tái)豐富,幾乎囊括了WEB下常用的編程語(yǔ)言和平臺(tái)

  • 很方便從JavaScript函數(shù)映射到服務(wù)端代理操作
  • 支持多種平臺(tái)(ASP/ColdFusion/Io/Lua/Perl/PHP/Python/Ruby)
  • 開(kāi)源協(xié)議

3.3 Javascipt Object Notation (JSON) and JSON-RPC

JSON 是一個(gè)"face-free" XML,而JSON-RPC是一種遠(yuǎn)程交互協(xié)議,類似于XML-RPC,對(duì)JavaScript支持較強(qiáng)

3.4 JavaScript Remote Scripting(JSRS)(2000年)

JSRS ,較經(jīng)典的遠(yuǎn)程腳本訪問(wèn)組件,支持將客戶端數(shù)據(jù)通過(guò)服務(wù)器做代理進(jìn)行遠(yuǎn)程的數(shù)據(jù)/操作交互。

  • 支持的瀏覽器:IE4+,NS4.x,NS6.x,Mozilla,Opera7和Galeon。
  • 服務(wù)器端腳本語(yǔ)言支持:ASP,ColdFusion,PerlCGI,PHP,Python和JSP(servlet)。
  • 開(kāi)源協(xié)議。由Brent Ashley提供支持。

3.5 Bitkraft for ASP.NET

Bitkraft 是個(gè)基于(.NET)Web框架的CLR(公共語(yǔ)言運(yùn)行庫(kù)),允許用獨(dú)特的方式創(chuàng)建和操作分布式Web內(nèi)容。用C#編寫,運(yùn)行在微軟的.NET 1.1和Mono框架下,無(wú)縫式的客戶端-服務(wù)器響應(yīng)方式是它的最大特點(diǎn)。Bitkraft沒(méi)有使用XML組織數(shù)據(jù),而是用JSON代替。

  • 支持的瀏覽器: IE5+, Firefox1+, NS6
  • 服務(wù)器端要求:ASP.NET, Mono XSP, Cassini, Apache (modMono) .NET Framework 1.1+
  • 事件驅(qū)動(dòng)
  • 支持同步和異步的遠(yuǎn)程代理
  • 客戶端支持所有的.NET類型或自定義類對(duì)象映射到JSON中
  • 用JSON取代XML
  • 免費(fèi),開(kāi)源許可協(xié)議

4 Server-Side: Java

4.1 WebORB for Java (2005年8月)

WebORB for Java 是一個(gè)開(kāi)發(fā)AJAX和基于Flash的富客戶端應(yīng)用程序的開(kāi)發(fā)平臺(tái)。在線例子

  • WebORB包括一個(gè)富客戶端開(kāi)發(fā)類庫(kù)。提供簡(jiǎn)單的在線式API用來(lái)綁定或者調(diào)用任何Java對(duì)象、XML Web Services和EJB
  • 支持異步或同步的事件驅(qū)動(dòng)
  • 不需要在服務(wù)端修改任何代碼,不需要自定義方法或?qū)傩浴⒆兞康取2灰笤O(shè)計(jì)時(shí)指定代理等。
  • 同步調(diào)用不需要回調(diào),異步調(diào)用需要一個(gè)回調(diào)方法。
  • 客戶端可以向服務(wù)端請(qǐng)求指定的活動(dòng)方式,不需要任何編程就可以把處理結(jié)果輕易的轉(zhuǎn)變?yōu)闋顟B(tài)。
  • 提供一個(gè)特定API來(lái)處理數(shù)據(jù)庫(kù)查詢結(jié)果-服務(wù)器代碼能返回DataSet或者DataTable,而客戶端以一個(gè)類似于RecordSet的JavaScript對(duì)象來(lái)顯示這個(gè)結(jié)果。該對(duì)象提供檢索列名和行數(shù)據(jù)的方法。
  • 支持?jǐn)?shù)據(jù)分頁(yè)技術(shù)。客戶應(yīng)用程序能檢索頁(yè)面中的數(shù)據(jù)。
  • 支持以參數(shù)的方式返回所有服務(wù)期端數(shù)據(jù)類型,如primitives, strings, complex types, arrays, native .net collections, remote references
  • 目前有兩個(gè)版本:標(biāo)準(zhǔn)版(免費(fèi)),專業(yè)版(商業(yè)許可)

4.2 Echo 2 (2005年3月)

Echo 2 允許你用純Java語(yǔ)言編寫AJAX程序。 Demo.

  • 自動(dòng)生成HTML和Javascript代碼
  • 用XML在客戶端-服務(wù)端傳遞消息
  • 如果愿意支持自定義Javascript組件
  • 開(kāi)源協(xié)議(Mozilla Public License or GNU LGPL)

4.3 Direct Web Remoting (DWR) (2005)

Direct Web Remoting 可以在Javascript代碼中直接調(diào)用Java方法的應(yīng)用框架

  • 類似于SAJAX,可以把Javascript中的請(qǐng)求調(diào)用轉(zhuǎn)遞到Java方法中并將執(zhí)行結(jié)果返回給Javascript
  • 可以和任何Web框架一起使用,如Struts、Tapestry等等
  • 開(kāi)源(Apache),目前該產(chǎn)品被加入到WebWork

4.4 SWATO (2005)

SWATO 是一套可重用的和良好集成的Java/JavaScript庫(kù),它實(shí)現(xiàn)了一種更容易的方式來(lái)改變你的web應(yīng)用程序的交互,通過(guò)AJAX方式實(shí)現(xiàn)。

  • 服務(wù)端Java庫(kù)可以非常容易的部署到所有Servlet2.3+兼容的容器中
  • 客戶端Javascript庫(kù)可以在所有支持XMLHttpRequest的瀏覽器中使用
  • 使用JSON技術(shù)在服務(wù)端組織POJO數(shù)據(jù),這樣你可以在任何Javascript環(huán)境中(HTML、XUL、SVG)訪問(wèn)這些遠(yuǎn)程數(shù)據(jù),這種方式很容易通過(guò)硬編碼或者某種成熟的Javascript庫(kù)集成到當(dāng)前應(yīng)用中
  • 提供一個(gè)簡(jiǎn)單接口使你能在Javascript中調(diào)用遠(yuǎn)程的POJO數(shù)據(jù)
  • 使用<servlet>和<filter>靈活的在web.xml中進(jìn)行配置,并且可以集成(不是必須)到你的Spring框架中
  • 提供了幾個(gè)可幫助你快速開(kāi)發(fā)web應(yīng)用程序的組件(如自動(dòng)完成的文本框,在線表單,在線列表等等)

4.5 AJAX JSP Tag Library

The AJAX JSP Tag Library 是一組JSP標(biāo)簽庫(kù),用來(lái)AJAX程序開(kāi)發(fā)。可以在J2EE下無(wú)需Javascript就能輕松開(kāi)發(fā)AJAX模式的Web Form。標(biāo)簽庫(kù)為比較通用的AJAX功能提供了5個(gè)標(biāo)簽:

  • autocomplete: 用戶在文本框中輸入字符,自動(dòng)從指定的數(shù)據(jù)中匹配用戶輸入的字符,類似于Google Suggest
  • callout:可以為A標(biāo)簽加入氣泡式的消息提示框,不過(guò)是實(shí)時(shí)的服務(wù)端取出數(shù)據(jù)
  • Select/dropdown:類似于聯(lián)動(dòng)菜單,比如地州市的聯(lián)動(dòng)下拉框
  • toggle:開(kāi)關(guān)閘按鈕,比如在一個(gè)hidden表單域中存儲(chǔ)true和falsh,同時(shí)顯示相應(yīng)的img圖像
  • update field:更新數(shù)據(jù),也就是無(wú)刷新提交了。

4.6 AJAX Java Server Faces Framework

The AJAX-JSF 用來(lái)把任意的JSF應(yīng)用程序轉(zhuǎn)變?yōu)锳JAX應(yīng)用程序

  • 例子 :AJAX組件的 MyFaces JSF Tree(樹型目錄), table scroller(可滾動(dòng)的表格), tabbed pane(分頁(yè)欄)
  • 開(kāi)源協(xié)議(Apache Software License)

Server-Side: Lisp

5.1 CL-Ajax

CL-Ajax 實(shí)現(xiàn)Javascript直接調(diào)用服務(wù)端Lisp

  • 生成可帶參數(shù)的函數(shù)
  • 可以回調(diào)Javascript函數(shù)或者DOM對(duì)象
  • 可以集成到SAJAX中
  • 開(kāi)源許可

6 Server-Side: .NET

6.1 WebORB for .NET (2005年8月)

WebORB for .NET 是一個(gè)用.NET和XML Web Services方式開(kāi)發(fā)AJAX和基于Flash的富客戶端應(yīng)用程序(在線例子)

  • WebORB包括一個(gè)富客戶端開(kāi)發(fā)類庫(kù)。提供簡(jiǎn)單的在線式API用來(lái)綁定或者調(diào)用任何.NET對(duì)象、XML Web Services
  • 支持異步或同步的事件驅(qū)動(dòng)
  • 不需要在服務(wù)端修改任何代碼,不需要自定義方法或?qū)傩浴⒆兞康取2灰笤O(shè)計(jì)時(shí)指定代理等。
  • 同步調(diào)用不需要回調(diào),異步調(diào)用需要一個(gè)回調(diào)方法。
  • 客戶端可以向服務(wù)端請(qǐng)求指定的活動(dòng)方式,不需要任何編程就可以把處理結(jié)果輕易的轉(zhuǎn)變?yōu)闋顟B(tài)。
  • 提供一個(gè)特定API來(lái)處理數(shù)據(jù)庫(kù)查詢結(jié)果-服務(wù)器代碼能返回DataSet或者DataTable,而客戶端以一個(gè)類似于RecordSet的JavaScript對(duì)象來(lái)顯示這個(gè)結(jié)果。該對(duì)象提供檢索列名和行數(shù)據(jù)的方法。
  • 支持?jǐn)?shù)據(jù)分頁(yè)技術(shù)。客戶應(yīng)用程序能檢索頁(yè)面中的數(shù)據(jù)。
  • 支持以參數(shù)的方式返回所有服務(wù)期端數(shù)據(jù)類型,如primitives, strings, complex types, arrays, native .net collections, remote references
  • 目前有兩個(gè)版本:標(biāo)準(zhǔn)版(免費(fèi)),專業(yè)版(商業(yè)許可)

6.2 Ajax.NET (2005年3月)

Ajax.NET 是首家支持各種方式通過(guò)Javascript訪問(wèn)服務(wù)端.net的免費(fèi)庫(kù)

  • 類似于SAJAX,能把Javascript請(qǐng)求發(fā)送到.NET方法,服務(wù)端回傳給Javascript,甚至包括串行化自定義類。
  • 可以在Javascript中訪問(wèn)Session和Application數(shù)據(jù)
  • 緩存查詢結(jié)果
  • 免費(fèi)使用源代碼
  • 無(wú)需更改源代碼,允許給Ajax.NET添加和修改方法和屬性
  • 所有類支持Javascript客戶端返回?cái)?shù)據(jù),可以在JavaScript中使用DataSet:res.Tables[0].Rows
  • 使用HtmlControls組件訪問(wèn)和返回?cái)?shù)據(jù)
  • 頁(yè)面無(wú)需重載,用事件代理(數(shù)據(jù)訪問(wèn)層)
  • 因?yàn)橹惶峁┮粋€(gè)調(diào)用接口方法,所以服務(wù)端CPU占用非常少

6.3 ComfortASP.NET (2005年8月)

ComfortASP.NET 可以讓開(kāi)發(fā)者在純.NET下開(kāi)發(fā)類似AJAX(DHTML,JavaScript,XMLHttp)特性的應(yīng)用程序。

  • 快速應(yīng)答
  • 減少HTML傳輸
  • 減少頁(yè)面重載
  • 無(wú)閃爍的瀏覽器內(nèi)容更改
  • AJAX用戶體驗(yàn),

6.4 AjaxAspects (2005年8月)

AjaxAspects 是個(gè)可以用Javascript調(diào)用服務(wù)端WebService事件的引擎

  • 用標(biāo)準(zhǔn)的SOAP和WSDL進(jìn)行服務(wù)端-客戶端通信
  • 用簡(jiǎn)單的類型和XML對(duì)象支持帶參數(shù)的返回值
  • 緩存支持
  • 動(dòng)作隊(duì)列
  • 免費(fèi)使用,開(kāi)源協(xié)議

7 Server-Side: PHP

7.1 AjaxAC (2005年4月)

AjaxAC 用一個(gè)單獨(dú)類封裝了完整的應(yīng)用程序功能

  • 所有的功能集成在自包含的類中(另外附帶一些Javascript庫(kù))
  • 調(diào)用PHP文件或者HTML頁(yè)面非常簡(jiǎn)易,只需創(chuàng)建App類后把類引用傳遞給需要調(diào)用的Javascript對(duì)象或者HTML元素即可。
  • 捕獲Javascript事件
  • 可以自定義配置數(shù)據(jù),并且支持運(yùn)行時(shí)參數(shù)更改
  • 無(wú)需再Javascript代碼中夾雜凌亂的Html代碼,所有事件都是被動(dòng)態(tài)附加上的
  • 由于以上兩個(gè)優(yōu)點(diǎn),所以支持良好的模版引擎
  • 容易Hook到PHP類和MySql數(shù)據(jù)已返回給自己的request
  • 能夠容易的用Javascript建立窗口模式應(yīng)用程序。

7.2 JPSpan

JPSPAN 通過(guò)Javascript直接調(diào)用PHP中的函數(shù)。

  • 進(jìn)行了嚴(yán)謹(jǐn)?shù)膯卧獪y(cè)試
  • 開(kāi)源許可(PHP)

7.3 XAJAX

XAjax 通過(guò)Javascript直接調(diào)用PHP中的函數(shù)

  • 支持用Javascript調(diào)用PHP腳本
  • 開(kāi)源許可協(xié)議

8 Server-Side: Ruby

8.1 Ruby On Rails

Ruby On Rails 是一個(gè)支持AJAX的完整Web框架,使用Ruby語(yǔ)言編寫,嚴(yán)格按照MVC結(jié)構(gòu)開(kāi)發(fā)。

  • 當(dāng)Ajax出現(xiàn)的時(shí)候Rails還處于其發(fā)展的早期,因此Ajax可能逐漸成為Rails框架的核心。
  • 生成瀏覽器中大多數(shù)/全部的Window應(yīng)用組件和動(dòng)畫的Javascript腳本。
  • 支持服務(wù)器端調(diào)用。
  • 隊(duì)列支持
  • 開(kāi)源許可