2011-06-17 99 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響應,而不是延遲客戶端。