什么是xajax.docx
- 文档编号:24698781
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:18
- 大小:24.91KB
什么是xajax.docx
《什么是xajax.docx》由会员分享,可在线阅读,更多相关《什么是xajax.docx(18页珍藏版)》请在冰豆网上搜索。
什么是xajax
什么是xajax?
Xajax是一个开源的PHP类库它能够让你黏合HTML、CSS、JavaScript和PHP,轻而易举的开发功能强大、基于WEB的AJAX应用软件.使用xajax开发的应用软件,无需重新调入页面,就能够异步调用服务器端的PHP函数和更新内容.
Whatisxajax?
xajaxisanopensourcePHPclasslibrarythatallowsyoutoeasilycreatepowerful,web-based,AjaxapplicationsusingHTML,CSS,JavaScript,andPHP.Applicationsdevelopedwithxajaxcanasynchronouslycallserver-sidePHPfunctionsandupdatecontentwithoutreloadingthepage.
xajax如何工作?
你的应用软件需要异步调用的PHP函数,xajax的PHP对象都生成了对应的封装好了的JavaScript函数.当被调用时,封装的函数使用JavaScript的XMLHttpRequest对象与服务器异步通讯,调用xajax对象对应的PHP函数.调用结束后,PHP函数由xajax返回一个xajax的XML响应传递给应用程序.XML响应包含了特定的指令和数据,他们可以被xajax的JavaScript消息分析器解析,并且被用于更新你的应用程序的内容.
Howdoesxajaxwork?
ThexajaxPHPobjectgeneratesJavaScriptwrapperfunctionsforthePHPfunctionsyouwanttobeabletocallasynchronouslyfromyourapplication.Whencalled,thesewrapperfunctionsuseJavaScript'sXMLHttpRequestobjecttoasynchronouslycommunicatewiththexajaxobjectontheserverwhichcallsthecorrespondingPHPfunctions.Uponcompletion,anxajaxXMLresponseisreturnedfromthePHPfunctions,whichxajaxpassesbacktotheapplication.TheXMLresponsecontainsinstructionsanddatathatareparsedbyxajax'sJavaScriptmessagepumpandusedtoupdatethecontentofyourapplication.
为什么我要使用xajax代替其他PHP的ajax库?
你应该选择一个最是和你的项目需要的库.
xajax提供了以下的功能,它们使得ajax富有特色而又功能强大:
WhyshouldIusexajaxinsteadofanotherAjaxlibraryforPHP?
Youshouldchoosewhateverlibrarywillbestmeettheneedsofyourproject.
xajaxoffersthefollowingfeaturesthat,together,makeituniqueandpowerful:
Xajax特殊的XML响应/javascript消息分析系统帮助你做到,自动的处理函数返回的数据,按照PHP函数返回的指令更新内容或者状态.因为xajax作了这些工作Becausexajaxdoesthework,你不需要写javascript的回调处理函数.
xajax'suniqueXMLresponse/javascriptmessage-pumpsystemdoestheworkforyou,automaticallyhandlingthedatareturnedfromyourfunctionsandupdatingyourcontentorstateaccordingtotheinstructionsyoureturnfromyourPHPfunctions.Becausexajaxdoesthework,youdon'thavetowritejavascriptcallbackhandlerfunctions.
Xajax反对将代码和数据紧密地杂糅在一起的主张,并且保持xajax的代码从与他代码分离.因为它是对象构造的,你可以加上自己定制的功能给xajax去扩展xajaxResponse类和使用addScript方法.
xajaxisobjectorientedtomaintaintighterrelationshipsbetweenthecodeanddata,andtokeepthexajaxcodeseparatefromothercode.Becauseitisobjectoriented,youcanaddyourowncustomfunctionalitytoxajaxbyextendingthexajaxResponseclassandusingtheaddScript()method.
xajax可以工作在Firefox,Mozilla,大部分基于Mozilla的浏览器,InternetExplorer,和Safari.
xajaxworksinFirefox,Mozilla,probablyotherMozillabasedbrowsers,InternetExplorer,andSafari.
除了更新元素的值和内含的HTML内容(innerHTML),xajax还能用于更新样式(styles),css类,多选和单选按钮选择,甚至可以更新任何元素的属性.
InadditiontoupdatingelementvaluesandinnerHTML,xajaxcanbeusedtoupdatestyles,cssclasses,checkboxandradiobuttonselection,ornearlyanyotherelementattribute.
xajax支持使用一维或者多维数组、关联数组(哈希数组)作为xajax函数的参数从javascript传送给PHP.反之Additionally,如果你传送一个javascript的对象给xajax函数,PHP函数将接受一个描叙对象属性的关联数组(哈希数组).
xajaxsupportspassingsingleandmultidimensionalarraysandassociativearraysfromjavascripttoPHPasparameterstoyourxajaxfunctions.Additionally,ifyoupassajavascriptobjectintoanxajaxfunction,thePHPfunctionwillreceiveanassociativearrayrepresentingthepropertiesoftheobject.
xajax提供了一种简单的异步表单处理方式.使用xajax.getFormValues()javascript方法,你可以轻而易举的在表单之中提交一个描绘值的数组作为参数传送到xajax异步处理函数:
xajax_processForm(xajax.getFormValues('formId');
.它可以处理复杂的input元素名称,例如"checkbox[][]"或者"name[first]"产生的多维或者关联数组(哈希数组),就是普通提交表单那样使用PHP的$_GET数组
xajaxprovideseasyasynchronousFormprocessing.Byusingthexajax.getFormValues()javascriptmethod,youcaneasilysubmitanarrayrepresentingthevaluesinaformasaparametertoaxajaxasynchronousfunction:
xajax_processForm(xajax.getFormValues('formId');
.Itevenworkswithcomplexinputnameslike"checkbox[][]"and"name[first]"toproducemultidimensionalandassociativearrays,justasifyouhadsubmittedtheformandusedthePHP$_GETarray
使用xajax你可以动态的发送附加的javascript作为请求的响应到你的应用软件中运行,而这就和动态的更新元素的属性一样方便.
Usingxajaxyoucandynamicallysendadditionaljavascripttoyourapplicationtoberuninresponsetoarequestaswellasdynamicallyupdateelementattributes.
Xajax会自动比较PHP函数返回的数据与你已经标记需要修改的元素属性.只有当新的数据确实可以改变现有的属性,属性才会真的被更新.这将可消除程序在一定时间间隔内更新与当前内容相同或者不同的内容而出现的明显的闪烁.
xajaxautomaticallycomparesthedatareturnedfromthePHPfunctionstothedatathatisalreadyintheattributeoftheelementyouhavemarkedforchange.Theattributeisonlyupdatedwiththenewdataifitwillactuallychangewhatisalreadyintheattribute.Thiseliminatestheflickeroftenobservedinapplicationsthatupdatecontentataregulartimeintervalwithdatawhichmayormaynotdifferfromextantcontent.
每一个通过xajax简单注册的函数都可以有不同的请求方式.所有的函数默认使用POST方式,除非你明确的指定使用GET方式.如果使用GET请求,你必须非常明确的考虑它确实是你所需要的
Eachfunctionregisteredtobeaccessiblethroughxajaxcanhaveadifferentrequesttype.AllfunctionsdefaulttousePOSTunlessGETisexplicitlyset.ThisistoencouragecarefulconsiderationofwhentouseGETrequests
如果没有指定URI,xajax将设法自动确定脚本的URI.Xajax的自动确定算法经过了充分的验证,确保在大部分HTTPS或者未知端口的HTTP服务器上也可以正常的工作.
IfnorequestURIisspecified,xajaxtriestoautodetecttheURLofthescript.Thexajaxautodetectionalgorithmissophisticatedenoughthat,onmostservers,itwillworkunderasecurehttps:
//protocolaswellashttp:
//andwithnonstandardports.
Xajax使用UTF8编码所有的请求和响应,以确保支持绝大部分的字符和语言.Xajax已经成功测试了多种不同的UNICODE字符,包括Spanish,Russian,Arabic,andHebrew
xajaxencodesallofitsrequestsandresponsesinUTF-8sothatitcansupportawiderrangeofcharactersandlanguages.xajaxhasbeensuccessfullytestedwithvariousunicodecharactersincludingSpanish,Russian,Arabic,andHebrew
几乎所有xajax生成的javascript都可以通过动态的外部javascript包含到你的web程序之中.当你在浏览器之中查看程序的源代码时,不会有JavaScript的函数定义混杂在HTML标记之中.
Nearlyallofthejavascriptgeneratedbyxajaxisincludedintoyourwebapplicationthroughdynamicexternaljavascript.Whenyouviewthesourceofyourapplicationinyourbrowser,themarkupwillbenotclutteredbyJavaScriptfunctiondefinitions.
Xajax可以使用在Smarty模板系统之中,仅仅需要创建一个smarty变量就可以包含xajax的javascript:
$smarty->assign('xajax_javascript',$xajax->getJavascript());
然后你可以使用在header模版之中使用
{$xajax_javascript}
从而把xajax应用到你的站点.
xajaxcanbeusedwiththeSmartytemplatingsystembycreatingavariableinsmartythatcontainsthexajaxjavascript:
$smarty->assign('xajax_javascript',$xajax->getJavascript());
Thenyoucanuse
{$xajax_javascript}
inyourheadertemplatetousexajaxonyoursite.
如何在我的PHP脚本之中使用xajax?
Xajax的设计是如此的富有特色,以至于不管是已有的web程序还是新的项目,它都能够被极其简单的部署和应用.仅仅需要七步,你就可以在几乎任何PHP脚本之中加入xajax的强大功能:
HowdoIusexajaxinmyPHPscript?
xajaxisdesignedtobeextremelyeasytoimplementinbothexistingwebapplicationsaswellasnewprojects.YoucanaddthepowerofxajaxtonearlyanyPHPscriptinseveneasysteps:
包含xajax类库:
require_once("xajax.inc.php");
实例化xajax对象:
$xajax=newxajax();
注册你需要通过xajax调用的PHP函数的名称:
$xajax->registerFunction("myFunction");
编写注册的PHP函数,并且在函数之中使用xajaxResponse对象返回XML指令:
functionmyFunction($arg)
{
//对$arg做一些基本处理例如从数据库检索数据
//然后把结果赋值给变量,例如$newContent
//实例化xajaxResponse对象
$objResponse=newxajaxResponse();
//添加指令到响应之中,用于指派
//指定元素(例如id="SomeElementId")的innerHTML属性的新的内容
$objResponse->addAssign("SomeElementId","innerHTML",$newContent);
//返回xajaxResponse对象生成的XML响应
return$objResponse->getXML();
}
在你的脚本输出任何信息之前,调用xajax用于接管请求:
$xajax->processRequests();
在页面的
标签之间,告诉xajax生成所必需的JavaScript:php$xajax->printJavascript();?
>
在程序中,从JavaScript事件或者函数调用前面注册的函数:
Includethexajaxclasslibrary:
require_once("xajax.inc.php");
Instantiatethexajaxobject:
$xajax=newxajax();
RegisterthenamesofthePHPfunctionsyouwanttobeabletocallthroughxajax:
$xajax->registerFunction("myFunction");
WritethePHPfunctionsyouhaveregisteredandusethexajaxResponseobjecttoreturnXMLcommandsfromthem:
functionmyFunction($arg)
{
//dosomestuffbasedon$arglikequerydatafromadatabaseand
//putitintoavariablelike$newContent
//InstantiatethexajaxResponseobject
$objResponse=newxajaxResponse();
//addacommandtotheresponsetoassigntheinnerHTMLattributeof
//theelementwithid="SomeElementId"towhateverthenewcontentis
$objResponse->addAssign("SomeElementId","innerHTML",$newContent);
//returntheXMLresponsegeneratedbythexajaxResponseobject
return$objResponse->getXML();
}
Beforeyourscriptsendsanyoutput,havexajaxhandleanyrequests:
$xajax->processRequests();
Betweenyour
tags,tellxajaxtogeneratethenecessaryJavaScript:php$xajax->printJavascript();?
>
CallthefunctionfromaJavaScripteventorfunctioninyourapplication:
就这么简单.xajax会处理其他所有的事情.你所要做的主要工作就是编写PHP函数,然后从函数之中返回xajax的XML响应。
而后者通过xajaxResponse类可以非常简单的生成.
That'sit.xajaxtakescareofmosteverythingelse.YourbiggesttaskiswritingthePHPfunctionsandreturningxajaxXMLresponsesfromthem--whichismadeextremelyeasybythexajaxResponseclass.
如何异步更新内容?
Xajax最富有特色的功能或许就是xajaxResponse类.其他的Ajax库需要你自己编写JavaScript的回调句柄去处理一个异步请求返回的数据并更新内容.xajax,从另外一个角度来说,允许你使用PHP简单的控制内容.xajaxResponse让你在PHP函数之中创建XML指令返回给你的程序.XML将被xajax的消息分析器解析,指令将告诉xajax如何更新程序的内容和状态.xajaxResponse类目前提供了以下指令:
HowdoIupdatemycontentasynchronously?
PerhapsthemostuniquefeatureofxajaxisthexajaxResponseclass.OtherAjaxlibrariesrequireyoutowriteyourowncallbackhandlersinJavaScripttoprocessthedata
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 什么是 xajax