2016-07-08 182 views
2

我正在使用柔性滑塊在頁面和頁面上也做一個阿賈克斯呼叫其他工作。我的問題是當用戶加載頁面,AJAX調用彈出滑塊,直到ajax請求尚未完成。完成ajax請求後,Flex滑塊已成功加載。如果我刪除ajax腳本,然後flex滑塊加載非常快。Ajax呼叫阻止其他javascript代碼

Flex的滑塊和Ajax請求這兩者之間的代碼編寫...

$(document).ready(function(){ 
    $('#carousel').flexslider({ 
     animation: "slide", 
     controlNav: true, 
     animationLoop: true, 
     slideshow: false, 
     itemWidth: 100, 
     itemMargin: 15,   
     asNavFor: '#slider'   
    }); 

    // Rest code of slider will come here 

    // Ajax code start from here  
    $.ajax({ 
      type: "GET", 
      async:false, 
      url: prefixUrl, 
      success: function(results) { 
        $(results).insertBefore('.event_container'); 
      } 
     }); 

}); 

請提出意見,使AJAX調用不應該阻止柔性滑塊。

謝謝

+1

如果你不希望它被阻塞,不要設置async爲false。 – kinakuta

+0

@ kinakuta#更改異步後也不能正常工作:true – anil

+0

控制檯錯誤?\ – madalinivascu

回答

3

異步false將等到您的操作完成。

試試這個:

$.ajax({ 
     type: "GET", 
     async:true, 
     url: prefixUrl, 
     success: function(results) { 
       $(results).insertBefore('.event_container'); 
     } 
    }); 

//更新2:

實際上它正在發生,因爲你已經在準備功能,所以,直到你的AJAX運行是沒有得到完整的頁面ready事件添加了Ajax。嘗試從準備好的文檔中刪除它。

+0

對不起,我已經嘗試過了。它不工作。 – anil

+0

我已添加新評論,請嘗試..hop這將解決您的問題 –

+0

嘗試過但相同的情況 – anil

0

我們使用ajax沒有獲得回傳操作,並且在您提到的代碼中,像async:false會導致同步ajax調用。同步ajax調用使您可以停止/阻止,直到您獲得前一個請求的響應。所以試試這個:

$.ajax({ 
    type: "GET", 
    url: yourURL, 
    success: function(results) { 
      $(results).insertBefore('.event_container'); 
    }, 
    async:true 
}); 
+0

更改異步:真正快速工作,但又一次彈出Ajax請求完成後的滑塊加載。 是否有其他選項,以便flex滑塊和ajax調用不依賴於對方? – anil