Chinaunix首页 | 论坛 | 博客
  • 博客访问: 439653
  • 博文数量: 50
  • 博客积分: 5071
  • 博客等级: 大校
  • 技术积分: 1780
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-20 10:36
文章分类

全部博文(50)

文章存档

2011年(2)

2010年(6)

2009年(12)

2008年(30)

我的朋友

分类:

2008-03-29 13:33:16

下面的文章来自:

HTML我简单写一个:

XML/HTML代码
  1. <div id="main">   
  2. <div id="left">   
  3. <li><a href="#" mce_href="#" onClick="xajax_showDetail();">li>  
  4. <li><a href="#" mce_href="#" onClick="xajax_showUserinfo();">li>
  5. div>  
  6. <div id="right">div>  
  7. div>  

分别表示左右两个部分。左边有两个链接,点击后右边通过AJAX取得数据并且重新填充。
现在我们构建两个模板页面,对应上面链接。
detai.htm:
XML/HTML代码
  1. <div>   
  2. {|$detail|}   
  3. div>  
userinfo.htm:
XML/HTML代码
  1. <div>   
  2. {|$userinfo|}   
  3. div>  

好了准备工作结束,开始xajax server的编写
server.php: server.php编写结束,当然无视了userinfo这个东西,因为东西是一样的。
到此为止,我们实现了XAJAX和SMARTY结合实现AJAX效果的目的。
接着再说说如何实现更炫的效果
见过很多使用AJAX技术的网站在读取数据的时候都会出现一个进度条写着读取中吧?感觉很COOL是吧,XAJAX照样也能做!

其实很简单,在要出现进度条的页面上首先放上如下代码:

PHP代码
  1. $xajax = new xajax();   
  2. $smarty = new smarty();   
  3. function Detail()   
  4. {   
  5.     $objResponse = new xajaxResponse();   
  6.     $detail = "测试XAJAX";   
  7.     /*********这里是重点部分***************/  
  8.     $smarty -> assign('detail',$detail);//替换模板的数据   
  9.     $content = $smarty -> fetch('detail.htm');//这里是最重要的一步,smarty把动态数据替换模板,并且返回已经替换过后的模板HTML数据   
  10.     /****接着我们用替换过的数据通过AJAX填充页面*****/  
  11.     $objResponse -> addAssign('right','innerHTML',$content);   
  12.      retuen $objResponse ;   
  13. }   
  14. $xajax -> registerFunction('detail');//注册函数   
  15. $xajax -> processRequests();//接管请求   
  16. ?>  

XML/HTML代码
  1.   
  2. <div id="loadingContainer">  
  3. <div id="loading">页面载入中,请稍候<br/>  
  4. <img src="src/images/common/loader.gif" mce_src="src/images/common/loader.gif" />  
  5. div>  
  6. div>   
  7.   

这样就做出了来了一个显示等待条的方块。

接着在页面里面写上如下JS代码:

JavaScript代码
  1.   

就这么简单的几句,状态条功能就实现了。
注意,如果从请求到获得数据的时间小于400毫秒的话,XAJAX默认不调用定义的函数,这主要是为了保证良好的效果。毕竟条一闪即逝没什么意思,还不如不显示。如果非得想要让用户看见,可以在PHP里面SLEEP(1) 一下,嘿嘿。
最后一个问题,使用了XAJAX以后鼠标箭头频繁闪动怎么办?
这个问题一般出现需要频繁和后台沟通的情况下。比如我们定义每0.5秒请求一次服务器。这时候你会发现一个问题,就是鼠标箭头每隔0.5秒都会变成等待中(带个沙漏)的样子一下,闪的人心烦,并且让人产生页面一直都在刷新的可耻想法。
要解决这个问题非常的简单其实……
只要在实体化XAJAX以后加上一句话就可以了:
$xajax->waitCursorOff();
这样就可以避免鼠标闪动了。

阅读(726) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~