2015-03-31 79 views
1

我有一個網站,我有13個鏈接。當你點擊一個鏈接時,你會得到一個不同的json文件,它顯示不同的數據。緩存JSON文件

一個問題是,當更新json文件時,更新不會在線反映,直到您清除緩存或查看json文件並刷新它。

另一個問題是,您點擊的第一個鏈接出現的json數據會出現在您點擊的其他鏈接上。

任何想法如何解決這些問題?

的jQuery:

$('.school').on("click", function() { 
    var school = $(this).attr('school'); 
    $.getJSON(school + "/data.json", function(data) { 
      $('.images').empty(); 
         $('.videos').empty(); 
          $('.field').empty(); 

         var location, enrollment, tuition, history, alumni, fact, prose; 
         location = data.location; 
         enrollment = data.enrollment; 
         tuition = data.tuition; 
         history = data.history; 
         fact = data.fact; 
         alumni = data.alumni; 
         prose = data.prose; 


         $('.location').html('<strong>Location</strong>: ' + location); 
         $('.enrollment').html('<strong>Enrollment</strong>: ' + enrollment); 
          $('.tuition').html('<strong>Undergraduate tuition</strong>: ' + tuition); 
          $('.history').html('<strong>History</strong>: ' + history); 
          $('.fact').html('<strong>Notable fact:</strong> ' + fact); 
         $('.alumni').html('<strong>Prominent alumni</strong>: ' + alumni); 
         $('.prose').html(prose);   
}); 
}); 
+1

沒有看到標記,我不能與你的問題的第二部分幫助,但對於第一部分簡單地添加新的'日期()的getTime()'的文件名,使用一個完全成熟的AJAX調用等等您可以將'cache:false'作爲參數傳遞,或者使用'$ .ajaxSetup'來全局設置ajax調用不緩存。 – Archer 2015-03-31 17:05:07

回答

1

假如你不能改變服務器上的緩存選項,您可以通過使用的事實,連接到URL查詢字符串緩存解決這個問題。我將_設置爲Date.now(),以便您的鏈接僅在1ms內保持有效。

var school = $(this).attr('school'), 
    url = school + "/data.json?_=" + Date.now(); 
$.getJSON(url, function(data) { /* ... */ }); 
+0

我認爲這是清除緩存是正確的。但我仍然有同樣的問題,所以我不知道我做錯了什麼。 – LauraNMS 2015-03-31 17:52:46

+0

我打算將其標記爲答案,因爲它解決了所有緩存問題。我會繼續爲我遇到的問題尋找答案。 – LauraNMS 2015-03-31 18:34:21