[PHP AJAX] 简单比较 xajax、AJASON、flxAJAX、AjaxAC

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 端只要负责正确的显示画面及传送请求,这也是写程式时所使用的方式。

在这几种 PHP AJAX 之中,xajax 比 flxajax、AjaxAC 更有资格称为 Framework,可是 xajax 在 Sourceforge 上也只自称為 library:

xajax is an open source PHP class library that allows you to easily create powerful, web-based, Ajax applications using HTML, CSS, JavaScript, and PHP that can asynchronously call server-side PHP functions and update content without reloading the page.


目前 xajax 採用 LGPL 授权,版本为 0.2.4。

Tags: php, ajax
« 上一篇 | 下一篇 »
只显示10条记录相关文章
php header 跳转 (浏览: 451, 评论: 0)
PHP5_OOP面向对象---教程下载 (浏览: 2299, 评论: 0)
在DISDUZ!5.5中添加代码高亮插件成功 (浏览: 3123, 评论: 1)
xajax+php的一个DEMO--Blackjack(21点) (浏览: 3503, 评论: 3)
关于使用PHP6的感受 (浏览: 2736, 评论: 0)
一个适用于验证码的小函数 (浏览: 19844, 评论: 0)
PHP本地执行放在远程服务器上的脚本 (浏览: 19833, 评论: 0)
用PHP动态创建Flash动画 (浏览: 19223, 评论: 0)
php与XML、XSLT、Mysql的结合运用,代码篇 (浏览: 19843, 评论: 0)
用php实现gb2312和unicode间的编码转换 (浏览: 20052, 评论: 0)
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容(*):