<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[Xajax十分钟入门]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[代码编程]]></category>
<pubDate>Wed, 27 Sep 2006 02:37:55 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	在PHP程序中使用xajax<br/>xajax被设计为无论在现存的还是新的项目中都十分容易使用。通过下面7个简单步骤，你就可以将xajax整合到你的项目中:<br/><br/>包含xajax的函数库文件:<br/>require_once(&quot;xajax.inc.php&quot;);<br/> &nbsp; &nbsp;创建一个xajax对象:<br/>$xajax = new xajax();<br/> &nbsp; &nbsp;注册你想要通过xajax调用的函数:<br/>$xajax-&gt;registerFunction(&quot;myFunction&quot;);<br/> &nbsp; &nbsp;实现这些函数，并在这些函数中通过xajaxResponse对象返回XML命令:<br/>function myFunction($arg)<br/> &nbsp; &nbsp;{<br/> &nbsp; &nbsp; &nbsp; &nbsp;/* 根据参数$arg执行适当的处理工作（比如查询数据库），并把结果保存在一个变量<br/> &nbsp; &nbsp; &nbsp; &nbsp; * 比如$newContent中<br/> &nbsp; &nbsp; &nbsp; &nbsp; */<br/> &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp;/* 创建一个xajaxResponse对象 */<br/> &nbsp; &nbsp; &nbsp; &nbsp;$objResponse = new xajaxResponse();<br/> &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp;/* 在返回中加入一个命令来设置id为&quot;SomeElementId&quot;的元素的innerHTML属性为<br/> &nbsp; &nbsp; &nbsp; &nbsp; * $newContent<br/> &nbsp; &nbsp; &nbsp; &nbsp; */<br/> &nbsp; &nbsp; &nbsp; &nbsp;$objResponse-&gt;addAssign(&quot;SomeElementId&quot;,&quot;innerHTML&quot;, $newContent);<br/> &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp;//返回由objResponse对象创建的XML格式的返回内容 */<br/> &nbsp; &nbsp; &nbsp; &nbsp;return $objResponse-&gt;getXML();<br/> &nbsp; &nbsp;}<br/> &nbsp; &nbsp;在你的程序发送输出之前，由xajax处理所有请求：:<br/>$xajax-&gt;processRequests();<br/> &nbsp; &nbsp;在你的HTML的&lt;head&gt;&lt;/head&gt; 标签之间加入下面一句以产生xajax初始化所需的代码:<br/>&lt;?php $xajax-&gt;printJavascript(); ?&gt;在你的客户端代码中，通过事件或者在javascript函数中调用来使用xajax:<br/>&lt;div id=&quot;SomeElementId&quot;&gt;&lt;/div&gt;<br/> &nbsp; &nbsp;&lt;button onclick=&quot;xajax_myFunction(SomeArgument);&quot;&gt;<br/> &nbsp; &nbsp;<br/><br/> <br/><br/> <br/><br/>整个过程就是这样. xajax---------------------------------------------------------------------------------------------- 它几乎为你完成所有其他事情. 现在你最大的任务就是完成一系列的PHP函数并在这些函数中返回xajax的XML格式响应，而这通过使用xajaxResponse 类已经变得十分简单.<br/><br/>[编辑]我怎样实现异步更新我的内容?<br/>或许xajax唯一的特色就是 xajaxResponse 类了. 其他Ajax库需要你自己实现javascript回调函数来处理从异步请求中返回的数据并更新网页内容。xajax则不一样, 它允许你更容易的在PHP中控制你的内容. xajaxResponse 类允许你从PHP函数中创建XML指令并返回到你的应用程序中. XML内容被xajax message pump解析，然后这些指令将会告诉xajax如何来更新你的应用程序中的内容以及它的状态. xajaxResponse 类目前可以提供不少游泳的命令，比如Assign, 用来设置元素的属性; Append, 用来附加数据到页面中某元素的指定属性; Prepend, 用来添加数据到页面中某元素指定属性的值的开始位置; Replace, 用来查找替换属性值; Script, 用来运行直接返回的javascript代码; 还有Alert, 用来显示含有指定内容的警告框.<br/><br/>一个XML response 可以包含多个命令, 这些命令将会被按照它们被添加到response的先后顺序被执行. 例如, 比方一个用户点击了你的应用程序中的一个按钮. 点击按钮的&quot;onclick&quot;事件将会触发一个PHP函数的javascript包装函数. 这个包装函数将会通过XMLHttpRequest发送一个异步请求给服务器，然后在服务器上xajax将会调用对应的PHP函数. 这个PHP函数将会执行数据库查询、数据处理或序列化（数据保存）等功能. 最后，你使用xajaxResponse 类来产生一个包含多个命令的xajax XML 响应并送回到xajax message pump，这些命令将在客户端代码（HTML/javascript)中被执行:<br/><br/>$objResponse = new xajaxResponse();<br/>$objResponse-&gt;addAssign(&quot;myInput1&quot;,&quot;value&quot;,$DataFromDatabase);<br/>$objResponse-&gt;addAssign(&quot;myInput1&quot;,&quot;style.color&quot;,&quot;red&quot;);<br/>$objResponse-&gt;addAppend(&quot;myDiv1&quot;,&quot;innerHTML&quot;,$DataFromDatabase2);<br/>$objResponse-&gt;addPrepend(&quot;myDiv2&quot;,&quot;innerHTML&quot;,$DataFromDatabase3);<br/>$objResponse-&gt;addReplace(&quot;myDiv3&quot;,&quot;innerHTML&quot;,&quot;xajax&quot;,&quot;&lt;strong&gt;xajax&lt;/strong&gt;&quot;);<br/>$objResponse-&gt;addScript(&quot;var x = prompt(&#92;&quot;输入你的姓名&#92;&quot;);&quot;);<br/>return $objResponse-&gt;getXML();<br/>对于以上代码所产生的XML响应， xajax message pump 将解析并最终执行以下动作:<br/><br/>ID为myInput1的元素的值将被设为$DataFromDatabase。<br/>ID为myInput1的元素的文本颜色将被设为红色。<br/>变量$DataFromDatabase2中的内容将被附到ID为myDiv1的元素的innerHTML最后。<br/>变量$DataFromDatabase3中的内容将被添加到ID为myDiv2的元素的innerHTML前面。<br/>ID为myDiv3的innerHTML中出现的所有&quot;xajax&quot;字符串将被替换为&quot;xajax&quot;; 也就是说将所有的&quot;xajax&quot;设为粗体。<br/>将会出现一个对话框提示输入你的姓名，并且用户输入的内容会被放在名为x的javascript变量中。<br/>以上所有这些功能都是在服务器端PHP函数中通过构造并返回一个XML响应来实现的。<br/>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] Xajax十分钟入门]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>