下面的文章来自:
HTML我简单写一个:
XML/HTML代码
- <div id="main">
- <div id="left">
- <li><a href="#" mce_href="#" onClick="xajax_showDetail();">li>
- <li><a href="#" mce_href="#" onClick="xajax_showUserinfo();">li>
- div>
- <div id="right">div>
- div>
分别表示左右两个部分。左边有两个链接,点击后右边通过AJAX取得数据并且重新填充。
现在我们构建两个模板页面,对应上面链接。
detai.htm:
XML/HTML代码
- <div>
- {|$detail|}
- div>
userinfo.htm:
XML/HTML代码
- <div>
- {|$userinfo|}
- div>
好了准备工作结束,开始xajax server的编写
server.php: server.php编写结束,当然无视了userinfo这个东西,因为东西是一样的。
到此为止,我们实现了XAJAX和SMARTY结合实现AJAX效果的目的。
接着再说说如何实现更炫的效果
见过很多使用AJAX技术的网站在读取数据的时候都会出现一个进度条写着读取中吧?感觉很COOL是吧,XAJAX照样也能做!
其实很简单,在要出现进度条的页面上首先放上如下代码:
PHP代码
-
- $xajax = new xajax();
- $smarty = new smarty();
- function Detail()
- {
- $objResponse = new xajaxResponse();
- $detail = "测试XAJAX";
-
- $smarty -> assign('detail',$detail);
- $content = $smarty -> fetch('detail.htm');
-
- $objResponse -> addAssign('right','innerHTML',$content);
- retuen $objResponse ;
- }
- $xajax -> registerFunction('detail');
- $xajax -> processRequests();
- ?>
XML/HTML代码
-
- <div id="loadingContainer">
- <div id="loading">页面载入中,请稍候<br/>
- <img src="src/images/common/loader.gif" mce_src="src/images/common/loader.gif" />
- div>
- div>
-
这样就做出了来了一个显示等待条的方块。
接着在页面里面写上如下JS代码:
就这么简单的几句,状态条功能就实现了。
注意,如果从请求到获得数据的时间小于400毫秒的话,XAJAX默认不调用定义的函数,这主要是为了保证良好的效果。毕竟条一闪即逝没什么意思,还不如不显示。如果非得想要让用户看见,可以在PHP里面SLEEP(1) 一下,嘿嘿。
最后一个问题,使用了XAJAX以后鼠标箭头频繁闪动怎么办?
这个问题一般出现需要频繁和后台沟通的情况下。比如我们定义每0.5秒请求一次服务器。这时候你会发现一个问题,就是鼠标箭头每隔0.5秒都会变成等待中(带个沙漏)的样子一下,闪的人心烦,并且让人产生页面一直都在刷新的可耻想法。
要解决这个问题非常的简单其实……
只要在实体化XAJAX以后加上一句话就可以了:
$xajax->waitCursorOff();
这样就可以避免鼠标闪动了。
阅读(726) | 评论(0) | 转发(0) |