xajax目前已经升级到0.5版本,旧版本的XAJAX与新版本的方法有些不同,新版本增加了延迟事件(delay events)和插件,具体请看内容
- 1 附加
- 1.1 延迟事件(delay events)
- 1.2 插件
- 2 Changes
- 2.1 请求类型(request type)
- 2.2 响应命令(Response Commands)
- 2.3 目录结构(Folder Structure)
- 2.4 方法重命名(Method Renaming)
- 3 快速参考
你现在可以指定自己的延迟事件,或调用独立的’读取中…’函数(附全局延迟事件/函数);使用
00000"> xajax.call('functioname',{onRequestDelay:delayFunctionName});
xajax现在已经拥有一套插件系统,因此你可以扩展它使其与其它框架如script.aculo.us协同工作。下面是一段插件调用的示例:
00000"> xajaxResponse->plugin(‘scriptaculous’)->fade(‘myDiv’);
请求类型的设置选项已经被去掉,因为大多数情况下使用的是POST方法。另外,POST方法允许在请求过程中发送更多的数据。GET请求方法被用作POST请求失败后的备选方案。
xajaxResponse已经被重构,可以用以支持将来可能出现的其它数据传输方法。目前响应命令是以数组方式存储的;数组在响应发送前会被转换为XML。以前的XML是通过字符串连接方式构建为命令添加在响应之后。
xajax目录结构已经更改,使PHP文件和Javascript文件相互独立。所有PHP文件放在xajax_core目录下,所有Javascript文件放在xajax_js目录下。
方法重命名(Method Renaming)
请注意:你可以通过new legacyXajax()实例化方法取代new xajax()实例化方法、new legacyXajaxResponse()实例化方法取代new xajaxResponse()实例化方法保留所有以前的方法。
xajax方法
xajax->processRequests()变为xajax->processRequest()
所有布尔值设置方法如xajax->debugOn();and xajax->outputEntitiesOn();变为xajax->setFlag(‘debug’,true)以及xajax- >setFlag(‘outputEntities’,true); xajax->setFlags()还可以设置数组值如xajax->setFlags(array(‘debug’=>true, ‘outputEntities’=>true));
xajax->registerExternalFunction()方法已经与xajax-> registerFunction()整合到一起,因此xajax->registerFunction()函数现在有一个可选的第二参数,如 xajax->registerFunction(‘functionName’, ‘file.php’)
xajaxResponse方法
许多xajaxResponse方法都发生了改变。以前容易混淆的’add’前缀从很多函数中移出;于是乎,xajaxResponse- >addScript()变成了 xajaxResponse->script(),xajaxResponse->addAssign()变为xajaxResponse- >assign()。将响应与PHP5合到一起就比较有意思了:
$response
->alert(“Hi!”)
->assign(“myDiv”, “innerHTML”, $stuff)
->plugin(‘script.aculo.us’)->highlight(“myDiv”)
->scriptCall(‘finishEditing’, $newID);
xajaxResponse->getXML()不用了;只需返回xajaxResponse对象即可。
旧代码 | 新代码 |
require_once(‘xajax.inc.php’); | require(‘xajax_core/xajax.inc.php’); |
xajax->debugOn(); | xajax->setFlag(‘debug’,true); |
xajax->debugOff(); | xajax->setFlag(‘debug’,false); |
xajax->statusMessagesOn(); | xajax->setFlag(‘statusMessages’,true); |
xajax->statusMessagesOff(); | xajax->setFlag(‘statusMessages’,false); |
xajax->decodeUTF8InputOn(); | setFlag(‘decodeUTF8Input’,true) |
xajax->registerExternalFunction(‘function’,’file.php’); | xajax->registerFunction(‘function’,’file.php’); |
xajax->processRequests(); | xajax->processRequest(); |
xajaxResponse->loadXML($response); | xajaxResponse->loadCommands($response); |
return xajaxResponse->getXML(); | return xajaxResponse |
xajaxResponse->addAssign(); | xajax->assign() |
xajaxResponse->addAlert(); | xajax->alert() |
xajaxResponse->addClear(); | xajax->clear() |
xajaxResponse->addCreateInput(); | xajax->createInput() |
xajaxResponse->addCreate(); | xajax->create() |
xajaxResponse->addRemove(); | xajax->remove() |
xajaxResponse->addScript(); | xajax->script() |
xajaxResponse->addScriptCall(); | xajax->call() |
xajax.createInput() | xajax.forms.createInput() |
xajax.create() | xajax.dom.create() |
xajax.remove() | xajax.dom.remove() |
xajax.loadingFunction = function(){}; | xajax.callback.global.onRequest= function(){}; |
xajax.doneLoadingFunction = function(){}; | xajax.callback.global.onComplete= function(){}; |
new function | xajax.callback.global.onFailure = function(args) { alert(“In global.onFailure…HTTP status code: ” + args.request.status); } |
更新的xajax升级资料你可以参考这里
http://wiki.xajaxproject.org/Zh:Upgrading_from_xajax_0.2_to_xajax_0.5