1.Purejavascript: Application Frameworks
1.1Bindows (成立於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.2BackBase (成立於2003年)
BackBase是一個完整的瀏覽器端框架,提供了豐富的瀏覽器操作功能,以及對.NET和JAVA平台的整合。
商業化產品,來自於Backbase BV(總部在Amsterdam,成立於2003年)。
1.3DOJO (開發中,成立於2004年9月)
DOJO提供完整的輕量級視窗元件和瀏覽器-伺服器訊息映射支援
提供建立自訂Javascript視窗元件的框架支援預製的豐富的視窗類型庫
B/S訊息映射支援-XMLHttpRequest和其他機制支援瀏覽器中的URL操縱功能開源許可(Academic Free License 2.1),由JotSpot的Alex Russell所領導。
1.4Open Rico (開發中;成立於2005年5月;基於早期的一個proprietary 框架)
Open Rico是一個支援Ajax架構和使用者互動的多用途框架。
一個XMLHttpRequest response能被一個或多個的DOM對象,或是Javascript對象呼叫。
支援拖曳操作支援基於javascript:void(0);">AJAX的動畫模式,如縮放和變換等基於Behaviors的操作庫使用指南,由RussMirimar的Yonah提供開源。源自Sabre航空公司解決方案,由Bill Scott,Darren James及另外一些人維護
。
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 Purejavascript: 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來模擬實現非同步互動
。
尚未測試的瀏覽器: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解析器。
實作了線程安全的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 forASP.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資料使用
4.5AJAX JSPTagLibrary
TheAJAX JSPLibrary是一組JSP標籤庫,用來javascript:void(0);">AJAX程式開發。可以在J2EE下無需Javascript就能輕鬆開發javascript:void(0);">AJAX模式的Web Form。標籤庫為比較通用的javascript:void(0);">AJAX功能提供了5個標籤:TagLibrary
autocomplete: 用戶在文本框中輸入字符,自動從指定的數據中匹配用戶輸入的字符,類似於Google Suggest
callout:可以為A標籤加入氣泡式的訊息提示框,不過是即時的服務端取出數據
Select/dropdown:類似於連動選單,例如地州市的連動下拉框
toggle:開關閘按鈕,例如在一個hidden表單域中儲存true和falsh,同時顯示對應的img影像
update field:更新數據,也就是無刷新提交了。
4.6AJAX Java Server Faces Framework
TheAJAX-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.2Ajax.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)上看到
。