天天看點

10大加速Ajax開發的架構

1. APS.NET的官方解決方案

ASP.NET AJAX

網址:ajax.asp.net

ASP.NET AJAX是微軟.NET平台上的解決方案,提供涵蓋伺服器端與使用者端所需的AJAX技術與JavaScript整合機制。

透過與下載下傳與安裝ASP.NET AJAX到Visual Studio 2005當中,即可利用預設的控制項,開發出一些視覺特效與非同步傳輸的應用。

另外,ASP.NET AJAX也提供控制項的Toolkit,包含開發人員想自行開發AJAX應用時所需的基底類别與專案範本。

ASP.NET AJAX除了處理浏覽器的相容性問題,也讓使用者端的JavaScript在開發時加入物件導向特性,例如型别系統、資料型别、命名空間、事件等,使得程式碼更容易除錯、維護與重複使用。

雖然ASP.NET AJAX提供伺服器與使用者端的解決方案,透過Visual Studio2005加持,也讓開發、除錯的難度降低,不過和其他AJAX架構相比,許多AJAX效果和功能都還在測試階段(在CTP版本中供使用者測試),可以應用的功能有限。

2.支援「上一頁」與加入「我的最愛」功能

Dojo

網址:dojotoolkit.org

一些輕巧的Ajax架構,用意在解決JavaScript遇到的易用性或特效問題,相較之下,Dojo更像是個面面俱到的JavaScript工具套餐,号稱可以降低網頁或網頁應用程式前端開發速度。

Dojo支援拖拉、淡出、淡入、移動、透明、操作SVG圖檔等動态效果,它的Widget也讓使用者可以輕易使用選單,分頁标簽(tab)、樹狀結構、月曆、文字編輯器等效果,當然也支援非同步處理的Ajax功能。

另外,Ajax由于以動态的方式操作檔案物件,導緻使用者習于使用上一頁、下一頁的功能無法使用,也無法利用像是「我的最愛」的功能,将使用者所需的頁面留下正确的書簽,但這些需求Dojo都已有解法。

比起其他輕巧型的Ajax架構,要摸熟Dojo顯然要下較多的功夫才能掌握,目前檔案較少也是個問題。不過由于它的功能更為完整,是以開發人員需要自行加工的地方就相對較少。

3.可由JavaScript呼叫Java文法

DWR(Direct Web Remoting)

網址:www.getahead.ltd.uk/dwr

DWR是設計給Java語言的Ajax架構,讓開發人員可以利用JavaScript程式呼叫Java文法。

DWR的運作可分為兩個部分,一方面用在浏覽器上,處理連接配接伺服器端Java程式,另一部分則是用來展示回傳資料。透過DWR呼叫Java的函式,它會處理連接配接處理的細節,而當資料被處理完成後,DWR就會執行回呼函式,以進行後續呈現的處理。

在安裝DWR時必須編輯Web應用程式的部署描述檔案,而且也要編輯DWR特定檔案。 DWR配置檔案指定了可以遠端建立和呼叫的類别。檔案中包含伺服器程式碼的JAR檔案,另外還有JavaScript檔案,提供一些輔助函式,處理互動呈現的效果。

DWR最大的好處就在于讓Java開發人員可以利用熟悉的文法來處理頁面與資料,并且能配合Struts、Tapestry來使用。不過從使用者端呼叫遠端伺服器的Java程式,仍存在一些安全上的疑慮,在使用時必須注意。

4.以易用性、簡化文法為目标

jQuery

網址:jquery.com

jQuery是最近大受矚目的Ajax架構,它以Prototype為本,簡化并提升JavaScript文法的功能。

jQuery有點像是将Prototype所做的事再推向極端,讓使用者改變原有撰寫JavaScript的方法。它最為人稱道的地方,就在于強大的存取頁面元素功能,無論是檔案的節點、CSS的選取子或Xpath表達式,都能利用「$( )」函式快速存取,并賦予它更多的功能。

此外,它的chainable方法能将一串處理函式結合在一起,讓程式碼更為簡潔。另外jQuery也提供一些動态效果,不過和其他架構相比,這部分就顯得陽春許多。

jQuery的優劣其實都在同一件事情上,一方面它簡化JavaScript的文法,讓撰寫程式更為簡便,就好用的目的而言,的确是相當成功。然而這卻讓JavaScript的程式碼會發展成另一種樣子,對于初學者而言,一開始學習時,必須要花點時間去适應。

5.依功能需求,下載下傳模組化工具

MooTools

網址:mootools.net

前身是以輕巧著稱的Moo.fx,與Prototype有着相似的概念和文法,但在物件導向上做得更為徹底,而且在動畫效果和互動行為上,提供更多的功能與應用,能讓使用者更快的寫出物件導向概念的JavaScript文法。

MooTools的下載下傳檔依模組分為核心、類别、原生文法、網頁元素、浏覽器視窗、動畫效果、拖曳、遠端傳輸與外挂程式,除了核心程式是必要下載下傳之外,其他可依使用者需求,下載下傳所需的JavaScript檔案,借此減少檔案的體積。

雖然MooTools将JavaScirpt物件導向化的結果做得更徹底,有利于程式的擴充與維護,不過也挑戰原先熟悉JavaScript物件觀的人,需要較多的時間适應。

不過無論是網站本身呈現、程式文法展示,甚至是模組下載下傳介面,MooTools都展現相當精緻的動态效果,參與網站的示範,很快就能實作。

6.大大擴充JavaScript基本功能

Prototype

網址:prototype.conio.net

Prototype不像其他架構,有許多炫人耳目的動态效果,而是專注在改良JavaScript本身的功能,讓JavaScript更容易使用,也更具物件導向風格。

Prototype在簡化JavaScript方法上,提供許多友善的文法,最著名的如「$( )」函式,隻要将DOM節點的ID傳入這個函式,就能取得這個節點物件,簡化了DOM的操作方法。而這個方式也幾乎成為其他開發架構延用的功能。其他如「$F( )」函數能直接處理Web表單元件的值,「$A( )」函數能将列舉的字串轉換成陣列等,都是Prototype經典功能。

在非同步處理上,它也提供了Ajax.Request、Ajax.Updater等類别,讓開發人員在處理非同步運作時可以利用它提供的方法,讓溝通行為更為容易、正确。

雖然Prototype沒有太多花俏的功能,不過它簡化JavaScript的特性,仍讓許多Web開發人員衷情于它。

7.平順、豐富的動畫效果

Rico

網址:openrico.org

Rico是基于Prototype之上的Ajax架構,在西班牙文中,「rico」即為「rich」的意思,這也說明Rico的目标是提供開發人員利用JavaScript達到豐富的網頁元件與應用。

Rico提供非同步的Ajax應用,可讓非同步回應繞送到一個或多個回呼以操作DOM或JavaScript物件。在動畫效果方面,支援如拖曳功能、縮放、過場、進度名額和黃褪技術等,可立即套用豐富的效果。

由于Rico志在讓JavaScript也能表現出Flash般的動畫效果,是以像是網頁元件的顔色、形狀或下拉效果的變化都相當平滑,也能讓DIV方塊做出圓角的效果,讓視覺表現更具Web 2.0風格。

Rico的LiveGrid功能同樣是為人所稱道之處。它能讓表單資料産生更多元的表現方式,突破表格的檢視行為。例如它可以讓使用者在觸動卷動軸時,動态下載下傳資料,利用這種方式,可以分段下載下傳,就無需采用分頁檢視的手法。

8. RoR與CakePHP的指定架構

Script.aculo.us

網址:Script.aculo.us

Script.aculo.us是建立在Prototype之上的Ajax架構,是解決視覺效果與互動行為的輕巧架構,Ruby on Rails及PHP上的開發架構CakePHP等,都是使用Script.aculo.us作為Ajax的解決方案。

在視覺效果上,Script.aculo.us利用改變透明度、大小、位置以及結合以上三種元素,産生更多種變化,例如淡進、淡出、閃動、提示等數十種視覺效果,可讓頁面效果更具變化,引導使用者與介面程式互動等。

在互動介面方面,提供了拖曳元件、就地編輯元件(In-Place Editor)、水準、垂直拉動卷軸、自動完成、元件排序、購物車等,這些預先打包成套的功能,解決了浏覽器相容性的問題,也讓使用者很容易可以直接導入在現有的專案功能中,節省自行開發的時間。

此外,Script.aculo.us包含單元測試(Unit Test)架構,可以利用本身的test物件,用來驗證程式執行的狀态,并且支援模拟滑鼠與鍵盤的功能。

9.有Yahoo!網站服務背書的架構

Yahoo! User Interface

網址:developer.yahoo.com/yui/

Yahoo! User Interface(YUI)是Yahoo!所提供的Ajax架構,提供便捷的開發方式與許多JavaScript函式庫,使用者可以利用它來開發互動式的介面與Ajax效果。 YUI可分為三大部分,包含工具、CSS和控制元件等函式庫,工具部分是核心物件,負責一些較底層的處理功能,CSS則提供像版面規畫、字型工具。而控制元件則有自動完成、月曆、樹狀結構這些工具。

由于YUI實際應用在Yahoo!的網站中,是以實作的可靠性相當不錯,在YUI網站上也提供不少範例與檔案,能協助使用者快速上手。雖然YUI是由Yahoo!所推出,不過它遵循JavaScript的文法規則,并将樣式、内容與行為分離,開發人員如果要擴充功能,也相當容易。

一般Ajax架構都需要置放在網站的伺服器端,随着頁面一起下載下傳,YUI除了采取這種方式之外,也提供使用連結的方式,使用者隻要在應用的頁面中将路徑指向YUI主機即可。

10.适合Java開發環境的企業級解決方案

ZK

網址:www.zkoss.org

ZK是基于Ajax、XUL(XML User Interface Language)、Java網頁應用程式的開發架構,讓網頁的操作行為可以像是桌面應用程式一般。

不同于使用者端的Ajax解決方案,ZK由伺服器端出發,利用ZK處理Ajax互動的引擎,處理使用者端的頁面行為,也是以大為降低利用JavaScript作為動态開發文法時,常遇到的浏覽器相容問題。

ZK提供超過70個XUL元件及80個XHTML元件,是以一些網頁或應用程式常見的功能,ZK都提供現成的工具可讓使用者立即應用,隻需利用ZK以XML為基礎的使用介面設計語言,即可産生這些元件。應用的人則可在後端利用Java語言進行來處理程式邏輯與資料傳遞。

由于ZK利用Java語言開發,屬于以伺服器為中心的解決方案,是以必須安裝支援Java的應用程式伺服器(如Tomcat)才能執行。

繼續閱讀