PHP AJAX 除了廣為人知的 SAJAX、JPSPAN (原名為ScriptServer) 之外,Sourceforge 近期可下載的 PHP AJAX 又多了 xajax 、AJASON、flxAJAX、AjaxAC。
這些都有供乘法範例程式(好像變成 AJAX 的 Hello world!) ,雖然乘法範例只能當參考,但至少可看出大致的架構。
[xajax]
xajax 最大的特色是支援 UTF-8 及 Smarty。而且 xajax 連網站都是 AJAX,乘法範例請直接到網站的 Example 看。
(連線太慢時可能會導致 Javascript 載入不完全,以致於網站無法換頁)
在乘法範例中可以看出最大的特色是 client 端不用自己寫 callback。client 端送出運算請求給 Server 端後,Server 端可以直接把運算結果傳送到網頁元素上。
至於 Smarty 支援的部份,因為 Client 端只需一行 $xajax->printJavascript(); 就可以產生 AJAX 所需的 Javascript,所以應該大部份的 Template engine 也都支援。
[AJASON]
AJASON 只能在 PHP 5 的環境執行,網站上提供的範例寫的相當清楚,乘法範例中提供了 function 、class 二種不同的使用方式,另外還有錯誤處理展示。至於經典的autocomplete 也值得一看。
[Flexible Ajax] (flxajax)
flxajax 主要是以 PHP5 寫的,有另外提供 PHP 4 的版本。範例只有提供乘法範例可看,而且 client 端的程式碼切的不如前二者完整。
[AjaxAC]
AjaxAC 提供了四則運算的範例。看過原始碼後發現邏輯相當的亂,Client 端還要寫程式告知哪些網頁元素要當成 widgets 才能交由 Server 端控制。而 Server 端竟然還有 Javascript Code (Callback),雖然看起來 event 部份規畫的很好,但是前後端的邏輯根本完全混在一起,實在太遜了。
總結:
以乘法範例比較起來,我個人比較偏好 xajax ,最主要原因是邏輯跟畫面分的相當清楚。(當然 UTF-8 也是原因之一)
xajax 讓 Server 端程式握有的網頁元素有絕對的主控權,在架構程式時可以很清楚的把邏輯完全放在 Server 端,Client 端只要負責正確的顯示畫面及傳送請求,這也是寫 ASP.Net 程式時所使用的方式。
在這幾種 PHP AJAX 之中,xajax 比 flxajax、AjaxAC 更有資格稱為 Framework,可是 xajax 在 Sourceforge 上也只自稱為 library: