我有一个小的ajax jquery脚本,它为我返回一些XML。当它正在工作并与服务器通信时,我正在显示加载器动画。
问题是我看不到动画。要么我做错了,要么网络连接非常快。
是否有人知道如何为我的ajax代码引入延迟以减慢进程并且我可以测试动画功能?
谢谢。
ps:ajax代码在下面,只是加入
function fetchData($nodeid, $area){
if( $nodeid != $currentRoomId ){
popupBox($area);//$area, $roomInfo);
}
var $nid, $title, $classroom, $boardroom, $cabaret;
$.ajax({
url: "/room/" + $nodeid + "/rss.xml",
dataType: "xml",
success: function($xml){
$returnXML = $xml;
$($xml).find('node > *').each(
function(){
switch( $(this).attr('name') ){
case 'Nid':
$nid = $(this).text();
break;
case 'Title':
$title = $(this).text();
break;
case 'Classroom':
$classroom = $(this).text();
break;
case 'Boardroom':
$boardroom = $(this).text();
break;
case 'Cabaret':
$cabaret = $(this).text();
break;
case 'Theatre':
$theatre = $(this).text();
break;
case 'Notes':
$notes = $(this).text();
break;
default:
break;
}//close switch statement
}
);
$roomInfo = new Array();
$roomInfo.push('Title', $title);
$roomInfo.push('Classroom', $classroom);
$roomInfo.push('Boardroom', $boardroom);
$roomInfo.push('Cabaret', $cabaret);
$roomInfo.push('Theatre', $theatre);
$roomInfo.push('Notes', $notes);
highlightRow($nid);
popupBox($area, $roomInfo);
},
statusCode: {
200: function(){
//alert('responding just fine!');
}
},
error: function(){
//alert('Ajax not responding!');
},
complete: function(){
//alert('completed!');
}
});
}
答案 0 :(得分:2)
您可以使用setTimeout来引入延迟。
答案 1 :(得分:1)
如果您可以控制服务器代码,则可以通过在服务器代码中添加延迟来使服务器延迟AJAX响应,而不是导致客户端延迟。
答案 2 :(得分:0)
快速解决方案是在if块中移动ajax调用。成功/错误 - 隐藏动画。这不会模拟延迟,但它会确保显示您的动画(即使是ms)。