2014-03-13 66 views
0

所以我有一個數一個div裏面像這樣Ajax請求不能正常工作任何時候都

<div style="display:inline" id="contItems">0</div> 

和我更新取決於項目的數量這個數字還有來自控制器和我這個車裏面正在返回一個int和我需要更換新的int DIV中的號碼,所以我這樣做Ajax請求:

function CountItemsDiv() { 

      $.ajax({ 
       type: "GET", 
       url: '/Cart/CountItems', 
       cache: false, 
       success: function (data) { 
         $('#contItems').html(data); 

       } 
      }); 
     } 

,我調用此函數CountItemsDiv()時,頁面加載,也當用戶添加或刪除一個產品,它的工作原理......但不是所有的時間,有時它會改變數量但其他人不會,我會說這將工作60%的時間有人會點擊添加或刪除,我試圖將緩存設置爲false,但它仍然這樣做,還有什麼可能呢?

+0

你對這個問題有什麼瀏覽器?如果可能,還可以在用戶單擊添加/刪除(執行多個並指出故障)時提供網絡活動。 – Xenolightning

+0

是的,一定要在您使用的任何瀏覽器中使用您的F12開發人員工具。或者,添加一個錯誤:處理函數,因爲實際的'/ Cart/CountItems'本身可能失敗!在此處將'async'設置爲true/false應該沒有什麼不同,因爲只有在ajax調用完成時,成功函數纔會被觸發。 –

+0

我正在使用Chrome瀏覽器,但網絡活動顯示一切正常,並且控制器每次都能正常工作,因此項目正在被正確添加/刪除,但獲取該簡單號碼的Ajax控制器有時無法正常工作。 –

回答

1

是的,你需要異步函數爲false,異步false等待所有項目的請求。

function CountItemsDiv() { 
    $.ajax({ 
       type: "GET", 
       url: '/Cart/CountItems', 
       cache: false, 
       async : false, 
       success: function (data) { 
         $('#contItems').html(data); 

       } 
      }); 
} 
+0

這有幫助,但它仍在發生,但現在我會說它的工作時間的80%。 –

+0

嘗試使用緩存:true。 –