2011-06-17 172 views
3

我有一个小的ajax jquery脚本,它为我返回一些XML。虽然它正在工作并与服务器通信,但我正在显示加载程序动画。Ajax延迟模拟

问题是我没有看到动画。要么我做错了什么,要么网络连接非常快。

有谁知道我可以如何在我的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

哪个函数使你的动画,它运行之前运行 - 还有你看看jQuery的延迟() – 2011-06-17 10:10:28

+0

我从来没有见过任何人在JavaScript的变量前面使用$。那有什么意义?另外,也许我很厚,但我不能看到你的代码中你开始/停止加载动画... – 2011-06-17 10:10:52

回答

0

快速解决方案是在if块内移动你的ajax调用。成功/错误 - 隐藏动画。这不会模拟延迟,但它会确保您的动画得到显示(即使对于ms)。

1

如果你有控制你的服务器代码,你可以通过在你的服务器代码中添加一个延迟来延长AJAX响应,而不是延迟客户端。