2012-10-22 35 views
2

我有一個mvc 3剃鬚刀項目,在個人電腦上工作很好有一個問題在Ipad我有一個artikel列表和一個添加按鈕測試然後我按添加按鈕它是返回現在的日期時間,然後我按下添加的按鈕它返回一個日期時間,然後我按第二次它是返回相同的日期時間,我的Ipad項目是從緩存中取出價值我認爲,每個人都可以幫助我? ? 這個jQuery代碼:阿賈克斯請求緩存在亭子瀏覽器

$(document).ready(function(){   
    $(".AddButton").live("click", function(){     
     var buttonId = $(this).attr("id");     
     var id = buttonId.substr(buttonId.indexOf("_")); 
     $.ajax({     
      type:'POST', 
      dataType:'json',     
      url: "@Url.Action("AddCommandArtikelJson","Home")", 
      data: {id:$("#Id"+id).val(), id_priceOnPad: $(this).attr("name")}, 
      cache: false, 
      success: function(result){    
       $("#commandsCount").text(result); 
      } 
     }); 

    }); 
}); 

這個控制器功能:

[HttpPost] 
    public JsonResult AddCommandArtikelJson(int id, int id_priceOnPad) 
    {//my code 
     return Json(DateTime.Now); 
    } 

回答

4

在這種情況下,一種常見的伎倆是通過在查詢字符串一個隨機字符串,這個招數瀏覽器認爲,請求是不同的,因此您繞過緩存。

+0

這是一個非常好的IDEE我試着去做,非常感謝你路易斯 –

3

當我從事的一個.NET網站將Web服務請求緩存到影響我網站功能的程度時,我遇到了同樣的問題。這似乎是iOS6中的一個常見特徵。

這StackOverflow的職位應該可以幫助您:Is Safari on iOS 6 caching $.ajax results?

我已經寫了一些書籍說明我的經驗對這個問題:http://www.isurinder.com/blog/post/2012/09/24/iOS-Safari-Browser-Has-A-Massive-Caching-Issue!.aspx

通過傳遞一個完整的時間戳到您的服務應該解決您的問題。